Dependency update / fixes / skrungle bungle (#23745)

* Give .props files 2-space indents.

* Move to Central Package Management.

Allows us to store NuGet package versions all in one place. Yay!

* Update NuGet packages and fix code for changes.

Notable:

Changes to ILVerify.
Npgsql doesn't need hacks for inet anymore, now we need hacks to make the old code work with this new reality.
NUnit's analyzers are already complaining and I didn't even update it to 4.x yet.
TerraFX changed to GetLastSystemError so error handling had to be changed.
Buncha APIs have more NRT annotations.

* Remove dotnet-eng NuGet package source.

I genuinely don't know what this was for, and Central Package Management starts throwing warnings about it, so YEET.

* Remove Robust.Physics project.

Never used.

* Remove erroneous NVorbis reference.

Should be VorbisPizza and otherwise wasn't used.

* Sandbox fixes

* Remove unused unit test package references.

Castle.Core and NUnit.ConsoleRunner.

* Update NUnit to 4.0.1

This requires replacing all the old assertion methods because they removed them 🥲

* Oh so that's what dotnet-eng was used for. Yeah ok that makes sense.

* Add Robust.Analyzers.Test

* Update submodule

* commit to re-run CI
This commit is contained in:
Pieter-Jan Briers
2024-01-12 23:22:01 +01:00
committed by GitHub
parent d2a1eae2d9
commit a6c9c36b68
44 changed files with 267 additions and 294 deletions

View File

@@ -338,7 +338,10 @@ dotnet_naming_symbols.type_parameters_symbols.applicable_kinds = type_parameter
resharper_braces_for_ifelse = required_for_multiline resharper_braces_for_ifelse = required_for_multiline
resharper_keep_existing_attribute_arrangement = true resharper_keep_existing_attribute_arrangement = true
[*.{csproj,xml,yml,yaml,dll.config,msbuildproj,targets}] [*.{csproj,xml,yml,yaml,dll.config,msbuildproj,targets,props}]
indent_size = 2
[nuget.config]
indent_size = 2 indent_size = 2
[{*.yaml,*.yml}] [{*.yaml,*.yml}]

View File

@@ -11,7 +11,7 @@
<LangVersion>12</LangVersion> <LangVersion>12</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.13.1" /> <PackageReference Include="BenchmarkDotNet" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Content.Client\Content.Client.csproj" /> <ProjectReference Include="..\Content.Client\Content.Client.csproj" />

View File

@@ -13,8 +13,8 @@
<Platforms>AnyCPU</Platforms> <Platforms>AnyCPU</Platforms>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Nett" Version="0.15.0" /> <PackageReference Include="Nett" />
<PackageReference Include="JetBrains.Annotations" Version="2022.1.0" PrivateAssets="All" /> <PackageReference Include="JetBrains.Annotations" PrivateAssets="All" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\RobustToolbox\Lidgren.Network\Lidgren.Network.csproj" /> <ProjectReference Include="..\RobustToolbox\Lidgren.Network\Lidgren.Network.csproj" />

View File

@@ -8,9 +8,9 @@
<LangVersion>11</LangVersion> <LangVersion>11</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="NUnit" Version="3.13.3" /> <PackageReference Include="NUnit" />
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> <PackageReference Include="NUnit3TestAdapter" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Content.Client\Content.Client.csproj" /> <ProjectReference Include="..\Content.Client\Content.Client.csproj" />

View File

@@ -1,4 +1,4 @@
#nullable enable #nullable enable
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using Content.Server.GameTicking; using Content.Server.GameTicking;
@@ -203,17 +203,17 @@ public sealed partial class TestPair : IAsyncDisposable
if (settings.InLobby) if (settings.InLobby)
{ {
Assert.Null(session.AttachedEntity); Assert.That(session.AttachedEntity, Is.Null);
return; return;
} }
Assert.NotNull(session.AttachedEntity); Assert.That(session.AttachedEntity, Is.Not.Null);
Assert.That(entMan.EntityExists(session.AttachedEntity)); Assert.That(entMan.EntityExists(session.AttachedEntity));
Assert.That(entMan.HasComponent<MindContainerComponent>(session.AttachedEntity)); Assert.That(entMan.HasComponent<MindContainerComponent>(session.AttachedEntity));
var mindCont = entMan.GetComponent<MindContainerComponent>(session.AttachedEntity!.Value); var mindCont = entMan.GetComponent<MindContainerComponent>(session.AttachedEntity!.Value);
Assert.NotNull(mindCont.Mind); Assert.That(mindCont.Mind, Is.Not.Null);
Assert.True(entMan.TryGetComponent(mindCont.Mind, out MindComponent? mind)); Assert.That(entMan.TryGetComponent(mindCont.Mind, out MindComponent? mind));
Assert.Null(mind!.VisitingEntity); Assert.That(mind!.VisitingEntity, Is.Null);
Assert.That(mind.OwnedEntity, Is.EqualTo(session.AttachedEntity!.Value)); Assert.That(mind.OwnedEntity, Is.EqualTo(session.AttachedEntity!.Value));
Assert.That(mind.UserId, Is.EqualTo(session.UserId)); Assert.That(mind.UserId, Is.EqualTo(session.UserId));
} }

View File

@@ -337,10 +337,10 @@ public static partial class PoolManager
{ {
// If the _poolFailureReason is not null, we can assume at least one test failed. // If the _poolFailureReason is not null, we can assume at least one test failed.
// So we say inconclusive so we don't add more failed tests to search through. // So we say inconclusive so we don't add more failed tests to search through.
Assert.Inconclusive(@" Assert.Inconclusive(@$"
In a different test, the pool manager had an exception when trying to create a server/client pair. In a different test, the pool manager had an exception when trying to create a server/client pair.
Instead of risking that the pool manager will fail at creating a server/client pairs for every single test, Instead of risking that the pool manager will fail at creating a server/client pairs for every single test,
we are just going to end this here to save a lot of time. This is the exception that started this:\n {0}", _poolFailureReason); we are just going to end this here to save a lot of time. This is the exception that started this:\n {_poolFailureReason}");
} }
if (_dead) if (_dead)

View File

@@ -29,7 +29,7 @@ public sealed class ActionsAddedTest
var cActionSystem = client.System<SharedActionsSystem>(); var cActionSystem = client.System<SharedActionsSystem>();
// Dummy ticker is disabled - client should be in control of a normal mob. // Dummy ticker is disabled - client should be in control of a normal mob.
Assert.NotNull(serverSession.AttachedEntity); Assert.That(serverSession.AttachedEntity, Is.Not.Null);
var serverEnt = serverSession.AttachedEntity!.Value; var serverEnt = serverSession.AttachedEntity!.Value;
var clientEnt = clientSession!.AttachedEntity!.Value; var clientEnt = clientSession!.AttachedEntity!.Value;
Assert.That(sEntMan.EntityExists(serverEnt)); Assert.That(sEntMan.EntityExists(serverEnt));
@@ -57,8 +57,8 @@ public sealed class ActionsAddedTest
var sAct = sActions[0].Comp; var sAct = sActions[0].Comp;
var cAct = cActions[0].Comp; var cAct = cActions[0].Comp;
Assert.NotNull(sAct); Assert.That(sAct, Is.Not.Null);
Assert.NotNull(cAct); Assert.That(cAct, Is.Not.Null);
// Finally, these two actions are not the same object // Finally, these two actions are not the same object
// required, because integration tests do not respect the [NonSerialized] attribute and will simply events by reference. // required, because integration tests do not respect the [NonSerialized] attribute and will simply events by reference.

View File

@@ -111,7 +111,7 @@ namespace Content.IntegrationTests.Tests.Buckle
// Side effects of buckling for the strap // Side effects of buckling for the strap
Assert.That(strap.BuckledEntities, Does.Contain(human)); Assert.That(strap.BuckledEntities, Does.Contain(human));
Assert.That(strap.OccupiedSize, Is.EqualTo(buckle.Size)); Assert.That(strap.OccupiedSize, Is.EqualTo(buckle.Size));
Assert.Positive(strap.OccupiedSize); Assert.That(strap.OccupiedSize, Is.Positive);
}); });
#pragma warning disable NUnit2045 // Interdependent asserts. #pragma warning disable NUnit2045 // Interdependent asserts.

View File

@@ -103,7 +103,7 @@ namespace Content.IntegrationTests.Tests.DeviceNetwork
await server.WaitAssertion(() => await server.WaitAssertion(() =>
{ {
CollectionAssert.AreEquivalent(deviceNetTestSystem.LastPayload, payload); Assert.That(payload, Is.EquivalentTo(deviceNetTestSystem.LastPayload));
}); });
await pair.CleanReturnAsync(); await pair.CleanReturnAsync();
} }
@@ -170,7 +170,7 @@ namespace Content.IntegrationTests.Tests.DeviceNetwork
await server.WaitAssertion(() => await server.WaitAssertion(() =>
{ {
CollectionAssert.AreEqual(deviceNetTestSystem.LastPayload, payload); Assert.That(payload, Is.EqualTo(deviceNetTestSystem.LastPayload).AsCollection);
payload = new NetworkPayload payload = new NetworkPayload
{ {
@@ -187,7 +187,7 @@ namespace Content.IntegrationTests.Tests.DeviceNetwork
await server.WaitAssertion(() => await server.WaitAssertion(() =>
{ {
CollectionAssert.AreNotEqual(deviceNetTestSystem.LastPayload, payload); Assert.That(payload, Is.Not.EqualTo(deviceNetTestSystem.LastPayload).AsCollection);
}); });
await pair.CleanReturnAsync(); await pair.CleanReturnAsync();
@@ -270,7 +270,7 @@ namespace Content.IntegrationTests.Tests.DeviceNetwork
await server.WaitAssertion(() => await server.WaitAssertion(() =>
{ {
CollectionAssert.AreEqual(deviceNetTestSystem.LastPayload, payload); Assert.That(payload, Is.EqualTo(deviceNetTestSystem.LastPayload).AsCollection);
}); });
await pair.CleanReturnAsync(); await pair.CleanReturnAsync();

View File

@@ -60,7 +60,7 @@ public sealed class GhostRoleTests
Assert.That(session.AttachedEntity, Is.EqualTo(originalMob)); Assert.That(session.AttachedEntity, Is.EqualTo(originalMob));
var originalMind = entMan.GetComponent<MindComponent>(originalMindId); var originalMind = entMan.GetComponent<MindComponent>(originalMindId);
Assert.That(originalMind.OwnedEntity, Is.EqualTo(originalMob)); Assert.That(originalMind.OwnedEntity, Is.EqualTo(originalMob));
Assert.Null(originalMind.VisitingEntity); Assert.That(originalMind.VisitingEntity, Is.Null);
// Use the ghost command // Use the ghost command
conHost.ExecuteCommand("ghost"); conHost.ExecuteCommand("ghost");
@@ -90,11 +90,11 @@ public sealed class GhostRoleTests
Assert.That(newMindId, Is.Not.EqualTo(originalMindId)); Assert.That(newMindId, Is.Not.EqualTo(originalMindId));
Assert.That(session.AttachedEntity, Is.EqualTo(ghostRole)); Assert.That(session.AttachedEntity, Is.EqualTo(ghostRole));
Assert.That(newMind.OwnedEntity, Is.EqualTo(ghostRole)); Assert.That(newMind.OwnedEntity, Is.EqualTo(ghostRole));
Assert.Null(newMind.VisitingEntity); Assert.That(newMind.VisitingEntity, Is.Null);
// Original mind should be unaffected, but the ghost will have deleted itself. // Original mind should be unaffected, but the ghost will have deleted itself.
Assert.That(originalMind.OwnedEntity, Is.EqualTo(originalMob)); Assert.That(originalMind.OwnedEntity, Is.EqualTo(originalMob));
Assert.Null(originalMind.VisitingEntity); Assert.That(originalMind.VisitingEntity, Is.Null);
Assert.That(entMan.Deleted(ghost)); Assert.That(entMan.Deleted(ghost));
// Ghost again. // Ghost again.
@@ -113,11 +113,11 @@ public sealed class GhostRoleTests
await pair.RunTicksSync(10); await pair.RunTicksSync(10);
Assert.That(session.AttachedEntity, Is.EqualTo(originalMob)); Assert.That(session.AttachedEntity, Is.EqualTo(originalMob));
Assert.That(originalMind.OwnedEntity, Is.EqualTo(originalMob)); Assert.That(originalMind.OwnedEntity, Is.EqualTo(originalMob));
Assert.Null(originalMind.VisitingEntity); Assert.That(originalMind.VisitingEntity, Is.Null);
// the ghost-role mind is unaffected, though the ghost will have deleted itself // the ghost-role mind is unaffected, though the ghost will have deleted itself
Assert.That(newMind.OwnedEntity, Is.EqualTo(ghostRole)); Assert.That(newMind.OwnedEntity, Is.EqualTo(ghostRole));
Assert.Null(newMind.VisitingEntity); Assert.That(newMind.VisitingEntity, Is.Null);
Assert.That(entMan.Deleted(otherGhost)); Assert.That(entMan.Deleted(otherGhost));
await pair.CleanReturnAsync(); await pair.CleanReturnAsync();

View File

@@ -36,8 +36,8 @@ public sealed partial class MindTests
await pair.RunTicksSync(5); await pair.RunTicksSync(5);
// Client is not attached to anything // Client is not attached to anything
Assert.Null(pair.Client.Player?.ControlledEntity); Assert.That(pair.Client.Player?.ControlledEntity, Is.Null);
Assert.Null(pair.PlayerData?.Mind); Assert.That(pair.PlayerData?.Mind, Is.Null);
// Attempt to ghost // Attempt to ghost
var cConHost = pair.Client.ResolveDependency<IConsoleHost>(); var cConHost = pair.Client.ResolveDependency<IConsoleHost>();

View File

@@ -1,4 +1,4 @@
using System.Linq; using System.Linq;
using Content.Shared.Ghost; using Content.Shared.Ghost;
using Content.Shared.Mind; using Content.Shared.Mind;
using Robust.Server.Player; using Robust.Server.Player;
@@ -127,7 +127,7 @@ public sealed partial class MindTests
var mindSys = entMan.System<SharedMindSystem>(); var mindSys = entMan.System<SharedMindSystem>();
var mind = GetMind(pair); var mind = GetMind(pair);
Assert.Null(mind.Comp.VisitingEntity); Assert.That(mind.Comp.VisitingEntity, Is.Null);
// Make player visit a new mob // Make player visit a new mob
var original = mind.Comp.OwnedEntity; var original = mind.Comp.OwnedEntity;
@@ -165,8 +165,8 @@ public sealed partial class MindTests
await using var pair = await SetupPair(); await using var pair = await SetupPair();
var mind = GetMind(pair); var mind = GetMind(pair);
Assert.Null(mind.Comp.VisitingEntity); Assert.That(mind.Comp.VisitingEntity, Is.Null);
Assert.NotNull(mind.Comp.OwnedEntity); Assert.That(mind.Comp.OwnedEntity, Is.Not.Null);
var entity = mind.Comp.OwnedEntity; var entity = mind.Comp.OwnedEntity;
await pair.RunTicksSync(5); await pair.RunTicksSync(5);
@@ -175,7 +175,7 @@ public sealed partial class MindTests
var newMind = GetMind(pair); var newMind = GetMind(pair);
Assert.Null(newMind.Comp.VisitingEntity); Assert.That(newMind.Comp.VisitingEntity, Is.Null);
Assert.That(newMind.Comp.OwnedEntity, Is.EqualTo(entity)); Assert.That(newMind.Comp.OwnedEntity, Is.EqualTo(entity));
Assert.That(newMind.Id, Is.EqualTo(mind.Id)); Assert.That(newMind.Id, Is.EqualTo(mind.Id));

View File

@@ -298,7 +298,7 @@ namespace Content.IntegrationTests.Tests
Assert.That(gameMaps.Remove(PoolManager.TestMap)); Assert.That(gameMaps.Remove(PoolManager.TestMap));
CollectionAssert.AreEquivalent(GameMaps.ToHashSet(), gameMaps, "Game map prototype missing from test cases."); Assert.That(gameMaps, Is.EquivalentTo(GameMaps.ToHashSet()), "Game map prototype missing from test cases.");
await pair.CleanReturnAsync(); await pair.CleanReturnAsync();
} }

View File

@@ -83,7 +83,7 @@ namespace Content.IntegrationTests.Tests.Preferences
var pair = await PoolManager.GetServerClient(); var pair = await PoolManager.GetServerClient();
var db = GetDb(pair.Server); var db = GetDb(pair.Server);
// Database should be empty so a new GUID should do it. // Database should be empty so a new GUID should do it.
Assert.Null(await db.GetPlayerPreferencesAsync(NewUserId())); Assert.That(await db.GetPlayerPreferencesAsync(NewUserId()), Is.Null);
await pair.CleanReturnAsync(); await pair.CleanReturnAsync();
} }

View File

@@ -26,7 +26,7 @@ public sealed partial class SerializationTest
var node = seriMan.WriteValue(value, notNullableOverride:true); var node = seriMan.WriteValue(value, notNullableOverride:true);
var valueNode = node as ValueDataNode; var valueNode = node as ValueDataNode;
Assert.NotNull(valueNode); Assert.That(valueNode, Is.Not.Null);
var expected = refMan.GetEnumReference(value); var expected = refMan.GetEnumReference(value);
Assert.That(valueNode!.Value, Is.EqualTo(expected)); Assert.That(valueNode!.Value, Is.EqualTo(expected));

View File

@@ -1,4 +1,4 @@
#nullable enable #nullable enable
using System.Collections.Generic; using System.Collections.Generic;
using Content.IntegrationTests.Pair; using Content.IntegrationTests.Pair;
using Content.Server.Administration.Managers; using Content.Server.Administration.Managers;
@@ -38,7 +38,7 @@ public abstract class ToolshedTest : IInvocationContext
protected virtual async Task TearDown() protected virtual async Task TearDown()
{ {
Assert.IsEmpty(_expectedErrors); Assert.That(_expectedErrors, Is.Empty);
ClearErrors(); ClearErrors();
} }

View File

@@ -13,8 +13,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="NUnit" Version="3.13.3" /> <PackageReference Include="NUnit" />
<PackageReference Include="SixLabors.ImageSharp" Version="2.1.3" /> <PackageReference Include="SixLabors.ImageSharp" />
</ItemGroup> </ItemGroup>
<Import Project="..\RobustToolbox\MSBuild\Robust.Properties.targets" /> <Import Project="..\RobustToolbox\MSBuild\Robust.Properties.targets" />

View File

@@ -115,7 +115,7 @@ public sealed class EntityPainter
var (x, y, width, height) = GetRsiFrame(rsi, image, entity, layer, dir); var (x, y, width, height) = GetRsiFrame(rsi, image, entity, layer, dir);
var rect = new Rectangle(x, y, width, height); var rect = new Rectangle(x, y, width, height);
if (!new Rectangle(Point.Empty, image.Size()).Contains(rect)) if (!new Rectangle(Point.Empty, image.Size).Contains(rect))
{ {
Console.WriteLine($"Invalid layer {rsi!.Path}/{layer.RsiState.Name}.png for entity {_sEntityManager.ToPrettyString(entity.Owner)} at ({entity.X}, {entity.Y})"); Console.WriteLine($"Invalid layer {rsi!.Path}/{layer.RsiState.Name}.png for entity {_sEntityManager.ToPrettyString(entity.Owner)} at ({entity.X}, {entity.Y})");
return; return;

View File

@@ -6,9 +6,6 @@
<ServerGarbageCollection>True</ServerGarbageCollection> <ServerGarbageCollection>True</ServerGarbageCollection>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="NVorbis" Version="0.10.5" PrivateAssets="compile" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\RobustToolbox\Robust.Packaging\Robust.Packaging.csproj" /> <ProjectReference Include="..\RobustToolbox\Robust.Packaging\Robust.Packaging.csproj" />
</ItemGroup> </ItemGroup>

View File

@@ -5,10 +5,11 @@
<TargetFramework>net7.0</TargetFramework> <TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="CsvHelper" Version="30.0.1" /> <PackageReference Include="CsvHelper" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -10,8 +10,8 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Nett" Version="0.15.0" /> <PackageReference Include="Nett" />
<PackageReference Include="JetBrains.Annotations" Version="2020.1.0" PrivateAssets="All" /> <PackageReference Include="JetBrains.Annotations" PrivateAssets="All" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\RobustToolbox\Lidgren.Network\Lidgren.Network.csproj" /> <ProjectReference Include="..\RobustToolbox\Lidgren.Network\Lidgren.Network.csproj" />

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<!-- Work around https://github.com/dotnet/project-system/issues/4314 --> <!-- Work around https://github.com/dotnet/project-system/issues/4314 -->
<TargetFramework>$(TargetFramework)</TargetFramework> <TargetFramework>$(TargetFramework)</TargetFramework>
@@ -12,16 +12,16 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.4"> <PackageReference Include="Microsoft.EntityFrameworkCore.Design">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="7.0.4" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.3" /> <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" />
<!-- Necessary at design time --> <!-- Necessary at design time -->
<PackageReference Include="SQLitePCLRaw.provider.e_sqlite3" Version="2.1.4" Condition="'$(UseSystemSqlite)' != 'True' and '$(Configuration)' != 'Release'" /> <PackageReference Include="SQLitePCLRaw.provider.sqlite3" Condition="'$(UseSystemSqlite)' == 'True' and '$(Configuration)' != 'Release'" />
<PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="2.1.4" Condition="'$(UseSystemSqlite)' != 'True' and '$(Configuration)' != 'Release'" /> <PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Condition="'$(UseSystemSqlite)' != 'True' and '$(Configuration)' != 'Release'" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -7,6 +7,7 @@ using System.Net;
using System.Text.Json; using System.Text.Json;
using Content.Shared.Database; using Content.Shared.Database;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using NpgsqlTypes;
namespace Content.Server.Database namespace Content.Server.Database
{ {
@@ -550,7 +551,7 @@ namespace Content.Server.Database
{ {
int Id { get; set; } int Id { get; set; }
Guid? PlayerUserId { get; set; } Guid? PlayerUserId { get; set; }
(IPAddress, int)? Address { get; set; } NpgsqlInet? Address { get; set; }
byte[]? HWId { get; set; } byte[]? HWId { get; set; }
DateTime BanTime { get; set; } DateTime BanTime { get; set; }
DateTime? ExpirationTime { get; set; } DateTime? ExpirationTime { get; set; }
@@ -618,8 +619,7 @@ namespace Content.Server.Database
/// <summary> /// <summary>
/// CIDR IP address range of the ban. The whole range can match the ban. /// CIDR IP address range of the ban. The whole range can match the ban.
/// </summary> /// </summary>
[Column(TypeName = "inet")] public NpgsqlInet? Address { get; set; }
public (IPAddress, int)? Address { get; set; }
/// <summary> /// <summary>
/// Hardware ID of the banned player. /// Hardware ID of the banned player.
@@ -808,7 +808,7 @@ namespace Content.Server.Database
public Round? Round { get; set; } public Round? Round { get; set; }
public Guid? PlayerUserId { get; set; } public Guid? PlayerUserId { get; set; }
[Required] public TimeSpan PlaytimeAtNote { get; set; } [Required] public TimeSpan PlaytimeAtNote { get; set; }
[Column(TypeName = "inet")] public (IPAddress, int)? Address { get; set; } public NpgsqlInet? Address { get; set; }
public byte[]? HWId { get; set; } public byte[]? HWId { get; set; }
public DateTime BanTime { get; set; } public DateTime BanTime { get; set; }

View File

@@ -21,8 +21,6 @@ namespace Content.Server.Database
protected override void OnConfiguring(DbContextOptionsBuilder options) protected override void OnConfiguring(DbContextOptionsBuilder options)
{ {
options.ReplaceService<IRelationalTypeMappingSource, CustomNpgsqlTypeMappingSource>();
((IDbContextOptionsBuilderInfrastructure) options).AddOrUpdateExtension(new SnakeCaseExtension()); ((IDbContextOptionsBuilderInfrastructure) options).AddOrUpdateExtension(new SnakeCaseExtension());
options.ConfigureWarnings(x => options.ConfigureWarnings(x =>

View File

@@ -9,6 +9,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Diagnostics; using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using NpgsqlTypes;
namespace Content.Server.Database namespace Content.Server.Database
{ {
@@ -48,8 +49,8 @@ namespace Content.Server.Database
.Property(p => p.LastSeenAddress) .Property(p => p.LastSeenAddress)
.HasConversion(ipConverter); .HasConversion(ipConverter);
var ipMaskConverter = new ValueConverter<(IPAddress address, int mask), string>( var ipMaskConverter = new ValueConverter<NpgsqlInet, string>(
v => InetToString(v.address, v.mask), v => InetToString(v.Address, v.Netmask),
v => StringToInet(v) v => StringToInet(v)
); );
@@ -98,11 +99,11 @@ namespace Content.Server.Database
return $"{address}/{mask}"; return $"{address}/{mask}";
} }
private static (IPAddress, int) StringToInet(string inet) { private static NpgsqlInet StringToInet(string inet) {
var idx = inet.IndexOf('/', StringComparison.Ordinal); var idx = inet.IndexOf('/', StringComparison.Ordinal);
return ( return new NpgsqlInet(
IPAddress.Parse(inet.AsSpan(0, idx)), IPAddress.Parse(inet.AsSpan(0, idx)),
int.Parse(inet.AsSpan(idx + 1), provider: CultureInfo.InvariantCulture) byte.Parse(inet.AsSpan(idx + 1), provider: CultureInfo.InvariantCulture)
); );
} }

View File

@@ -1,68 +0,0 @@
using System.Linq.Expressions;
using System.Net;
using System.Reflection;
using Microsoft.EntityFrameworkCore.Storage;
using Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure.Internal;
using Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal;
using Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.Mapping;
#pragma warning disable EF1001
namespace Content.Server.Database
{
// Taken from https://github.com/npgsql/efcore.pg/issues/1158
// To support inet -> (IPAddress, int) mapping.
public class CustomNpgsqlTypeMappingSource : NpgsqlTypeMappingSource
{
public CustomNpgsqlTypeMappingSource(
TypeMappingSourceDependencies dependencies,
RelationalTypeMappingSourceDependencies relationalDependencies,
ISqlGenerationHelper sqlGenerationHelper,
INpgsqlSingletonOptions npgsqlOptions)
: base(dependencies, relationalDependencies, sqlGenerationHelper, npgsqlOptions)
{
StoreTypeMappings["inet"] =
new RelationalTypeMapping[]
{
new NpgsqlInetWithMaskTypeMapping(),
new NpgsqlInetTypeMapping()
};
}
}
// Basically copied from NpgsqlCidrTypeMapping
public class NpgsqlInetWithMaskTypeMapping : NpgsqlTypeMapping
{
public NpgsqlInetWithMaskTypeMapping() : base("inet", typeof((IPAddress, int)), NpgsqlTypes.NpgsqlDbType.Inet)
{
}
protected NpgsqlInetWithMaskTypeMapping(RelationalTypeMappingParameters parameters)
: base(parameters, NpgsqlTypes.NpgsqlDbType.Inet)
{
}
protected override RelationalTypeMapping Clone(RelationalTypeMappingParameters parameters)
{
return new NpgsqlInetWithMaskTypeMapping(parameters);
}
protected override string GenerateNonNullSqlLiteral(object value)
{
var (address, subnet) = ((IPAddress, int)) value;
return $"INET '{address}/{subnet}'";
}
public override Expression GenerateCodeLiteral(object value)
{
var (address, subnet) = ((IPAddress, int)) value;
return Expression.New(
Constructor,
Expression.Call(ParseMethod, Expression.Constant(address.ToString())),
Expression.Constant(subnet));
}
private static readonly MethodInfo ParseMethod = typeof(IPAddress).GetMethod("Parse", new[] {typeof(string)})!;
private static readonly ConstructorInfo Constructor =
typeof((IPAddress, int)).GetConstructor(new[] {typeof(IPAddress), typeof(int)})!;
}
}

View File

@@ -196,7 +196,7 @@ namespace Content.Server.Atmos.EntitySystems
/// </summary> /// </summary>
private bool UpdateChunkTile(GridAtmosphereComponent gridAtmosphere, GasOverlayChunk chunk, Vector2i index, GameTick curTick) private bool UpdateChunkTile(GridAtmosphereComponent gridAtmosphere, GasOverlayChunk chunk, Vector2i index, GameTick curTick)
{ {
ref var oldData = ref chunk.GetData(index); ref var oldData = ref chunk.TileData[chunk.GetDataIndex(index)];
if (!gridAtmosphere.Tiles.TryGetValue(index, out var tile)) if (!gridAtmosphere.Tiles.TryGetValue(index, out var tile))
{ {
if (oldData.Equals(default)) if (oldData.Equals(default))

View File

@@ -14,7 +14,7 @@
<ServerGarbageCollection>true</ServerGarbageCollection> <ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="JetBrains.Annotations" Version="2022.1.0" PrivateAssets="All" /> <PackageReference Include="JetBrains.Annotations" PrivateAssets="All" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Content.Packaging\Content.Packaging.csproj" /> <ProjectReference Include="..\Content.Packaging\Content.Packaging.csproj" />

View File

@@ -7,6 +7,7 @@ using System.Runtime.CompilerServices;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Content.Server.Administration.Logs; using Content.Server.Administration.Logs;
using Content.Server.IP;
using Content.Shared.CCVar; using Content.Shared.CCVar;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Robust.Shared.Configuration; using Robust.Shared.Configuration;
@@ -196,7 +197,7 @@ namespace Content.Server.Database
return new ServerBanDef( return new ServerBanDef(
ban.Id, ban.Id,
uid, uid,
ban.Address, ban.Address.ToTuple(),
ban.HWId == null ? null : ImmutableArray.Create(ban.HWId), ban.HWId == null ? null : ImmutableArray.Create(ban.HWId),
ban.BanTime, ban.BanTime,
ban.ExpirationTime, ban.ExpirationTime,
@@ -233,7 +234,7 @@ namespace Content.Server.Database
db.PgDbContext.Ban.Add(new ServerBan db.PgDbContext.Ban.Add(new ServerBan
{ {
Address = serverBan.Address, Address = serverBan.Address.ToNpgsqlInet(),
HWId = serverBan.HWId?.ToArray(), HWId = serverBan.HWId?.ToArray(),
Reason = serverBan.Reason, Reason = serverBan.Reason,
Severity = serverBan.Severity, Severity = serverBan.Severity,
@@ -385,7 +386,7 @@ namespace Content.Server.Database
return new ServerRoleBanDef( return new ServerRoleBanDef(
ban.Id, ban.Id,
uid, uid,
ban.Address, ban.Address.ToTuple(),
ban.HWId == null ? null : ImmutableArray.Create(ban.HWId), ban.HWId == null ? null : ImmutableArray.Create(ban.HWId),
ban.BanTime, ban.BanTime,
ban.ExpirationTime, ban.ExpirationTime,
@@ -423,7 +424,7 @@ namespace Content.Server.Database
var ban = new ServerRoleBan var ban = new ServerRoleBan
{ {
Address = serverRoleBan.Address, Address = serverRoleBan.Address.ToNpgsqlInet(),
HWId = serverRoleBan.HWId?.ToArray(), HWId = serverRoleBan.HWId?.ToArray(),
Reason = serverRoleBan.Reason, Reason = serverRoleBan.Reason,
Severity = serverRoleBan.Severity, Severity = serverRoleBan.Severity,

View File

@@ -139,7 +139,7 @@ namespace Content.Server.Database
ServerBanExemptFlags? exemptFlags) ServerBanExemptFlags? exemptFlags)
{ {
if (!exemptFlags.GetValueOrDefault(ServerBanExemptFlags.None).HasFlag(ServerBanExemptFlags.IP) if (!exemptFlags.GetValueOrDefault(ServerBanExemptFlags.None).HasFlag(ServerBanExemptFlags.IP)
&& address != null && ban.Address is not null && address.IsInSubnet(ban.Address.Value)) && address != null && ban.Address is not null && address.IsInSubnet(ban.Address.ToTuple().Value))
{ {
return true; return true;
} }
@@ -158,7 +158,7 @@ namespace Content.Server.Database
db.SqliteDbContext.Ban.Add(new ServerBan db.SqliteDbContext.Ban.Add(new ServerBan
{ {
Address = serverBan.Address, Address = serverBan.Address.ToNpgsqlInet(),
Reason = serverBan.Reason, Reason = serverBan.Reason,
Severity = serverBan.Severity, Severity = serverBan.Severity,
BanningAdmin = serverBan.BanningAdmin?.UserId, BanningAdmin = serverBan.BanningAdmin?.UserId,
@@ -239,7 +239,7 @@ namespace Content.Server.Database
NetUserId? userId, NetUserId? userId,
ImmutableArray<byte>? hwId) ImmutableArray<byte>? hwId)
{ {
if (address != null && ban.Address is not null && address.IsInSubnet(ban.Address.Value)) if (address != null && ban.Address is not null && address.IsInSubnet(ban.Address.ToTuple().Value))
{ {
return true; return true;
} }
@@ -258,7 +258,7 @@ namespace Content.Server.Database
var ban = new ServerRoleBan var ban = new ServerRoleBan
{ {
Address = serverBan.Address, Address = serverBan.Address.ToNpgsqlInet(),
Reason = serverBan.Reason, Reason = serverBan.Reason,
Severity = serverBan.Severity, Severity = serverBan.Severity,
BanningAdmin = serverBan.BanningAdmin?.UserId, BanningAdmin = serverBan.BanningAdmin?.UserId,
@@ -315,7 +315,7 @@ namespace Content.Server.Database
return new ServerRoleBanDef( return new ServerRoleBanDef(
ban.Id, ban.Id,
uid, uid,
ban.Address, ban.Address.ToTuple(),
ban.HWId == null ? null : ImmutableArray.Create(ban.HWId), ban.HWId == null ? null : ImmutableArray.Create(ban.HWId),
// SQLite apparently always reads DateTime as unspecified, but we always write as UTC. // SQLite apparently always reads DateTime as unspecified, but we always write as UTC.
DateTime.SpecifyKind(ban.BanTime, DateTimeKind.Utc), DateTime.SpecifyKind(ban.BanTime, DateTimeKind.Utc),
@@ -385,7 +385,7 @@ namespace Content.Server.Database
return new ServerBanDef( return new ServerBanDef(
ban.Id, ban.Id,
uid, uid,
ban.Address, ban.Address.ToTuple(),
ban.HWId == null ? null : ImmutableArray.Create(ban.HWId), ban.HWId == null ? null : ImmutableArray.Create(ban.HWId),
// SQLite apparently always reads DateTime as unspecified, but we always write as UTC. // SQLite apparently always reads DateTime as unspecified, but we always write as UTC.
DateTime.SpecifyKind(ban.BanTime, DateTimeKind.Utc), DateTime.SpecifyKind(ban.BanTime, DateTimeKind.Utc),

View File

@@ -1,11 +1,34 @@
using System.Collections; using System.Collections;
using System.Diagnostics.CodeAnalysis;
using System.Linq; using System.Linq;
using System.Net;
using System.Net.Sockets; using System.Net.Sockets;
using NpgsqlTypes;
namespace Content.Server.IP namespace Content.Server.IP
{ {
public static class IPAddressExt public static class IPAddressExt
{ {
// Npgsql used to map inet types as a tuple like this.
// I'm upgrading the dependencies and I don't wanna rewrite a bunch of DB code, so a few helpers it shall be.
[return: NotNullIfNotNull(nameof(tuple))]
public static NpgsqlInet? ToNpgsqlInet(this (IPAddress, int)? tuple)
{
if (tuple == null)
return null;
return new NpgsqlInet(tuple.Value.Item1, (byte) tuple.Value.Item2);
}
[return: NotNullIfNotNull(nameof(inet))]
public static (IPAddress, int)? ToTuple(this NpgsqlInet? inet)
{
if (inet == null)
return null;
return (inet.Value.Address, inet.Value.Netmask);
}
// Taken from https://stackoverflow.com/a/56461160/4678631 // Taken from https://stackoverflow.com/a/56461160/4678631
public static bool IsInSubnet(this System.Net.IPAddress address, string subnetMask) public static bool IsInSubnet(this System.Net.IPAddress address, string subnetMask)
{ {

View File

@@ -16,7 +16,7 @@ namespace Content.Shared.Atmos
public readonly Vector2i Index; public readonly Vector2i Index;
public readonly Vector2i Origin; public readonly Vector2i Origin;
public GasOverlayData[][] TileData = new GasOverlayData[ChunkSize][]; public GasOverlayData[] TileData = new GasOverlayData[ChunkSize * ChunkSize];
[NonSerialized] [NonSerialized]
public GameTick LastUpdate; public GameTick LastUpdate;
@@ -25,31 +25,25 @@ namespace Content.Shared.Atmos
{ {
Index = index; Index = index;
Origin = Index * ChunkSize; Origin = Index * ChunkSize;
// For whatever reason, net serialize does not like multi_D arrays. So Jagged it is.
for (var i = 0; i < ChunkSize; i++)
{
TileData[i] = new GasOverlayData[ChunkSize];
}
} }
public GasOverlayChunk(GasOverlayChunk data) public GasOverlayChunk(GasOverlayChunk data)
{ {
Index = data.Index; Index = data.Index;
Origin = data.Origin; Origin = data.Origin;
for (int i = 0; i < ChunkSize; i++)
{
// This does not clone the opacity array. However, this chunk cloning is only used by the client, // This does not clone the opacity array. However, this chunk cloning is only used by the client,
// which never modifies that directly. So this should be fine. // which never modifies that directly. So this should be fine.
var array = TileData[i] = new GasOverlayData[ChunkSize]; Array.Copy(data.TileData, TileData, data.TileData.Length);
Array.Copy(data.TileData[i], array, ChunkSize);
}
} }
public ref GasOverlayData GetData(Vector2i gridIndices) /// <summary>
/// Resolve a data index into <see cref="TileData"/> for the given grid index.
/// </summary>
public int GetDataIndex(Vector2i gridIndices)
{ {
DebugTools.Assert(InBounds(gridIndices)); DebugTools.Assert(InBounds(gridIndices));
return ref TileData[gridIndices.X - Origin.X][gridIndices.Y - Origin.Y]; return (gridIndices.X - Origin.X) + (gridIndices.Y - Origin.Y) * ChunkSize;
} }
private bool InBounds(Vector2i gridIndices) private bool InBounds(Vector2i gridIndices)
@@ -63,37 +57,32 @@ namespace Content.Shared.Atmos
public struct GasChunkEnumerator public struct GasChunkEnumerator
{ {
private GasOverlayChunk _chunk; private readonly GasOverlayData[] _tileData;
public int X = 0; private int _index = -1;
public int Y = -1;
private GasOverlayData[] _column;
public int X = ChunkSize - 1;
public int Y = -1;
public GasChunkEnumerator(GasOverlayChunk chunk) public GasChunkEnumerator(GasOverlayChunk chunk)
{ {
_chunk = chunk; _tileData = chunk.TileData;
_column = _chunk.TileData[0];
} }
public bool MoveNext(out GasOverlayData gas) public bool MoveNext(out GasOverlayData gas)
{ {
while (X < ChunkSize) while (_index < _tileData.Length)
{ {
// We want to increment Y before returning, but we also want it to match the current Y coordinate for X += 1;
// the returned gas, so using a slightly different logic for the Y loop. if (X >= ChunkSize)
while (Y < ChunkSize - 1)
{ {
Y++; X = 0;
gas = _column[Y]; Y += 1;
if (!gas.Equals(default))
return true;
} }
X++; _index += 1;
if (X < ChunkSize) gas = _tileData[_index];
_column = _chunk.TileData[X]; if (!gas.Equals(default))
Y = -1; return true;
} }
gas = default; gas = default;

View File

@@ -9,7 +9,7 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="JetBrains.Annotations" Version="2022.1.0" PrivateAssets="All" /> <PackageReference Include="JetBrains.Annotations" PrivateAssets="All" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Content.Shared.Database\Content.Shared.Database.csproj" /> <ProjectReference Include="..\Content.Shared.Database\Content.Shared.Database.csproj" />

View File

@@ -8,10 +8,9 @@
<OutputPath>..\bin\Content.Tests\</OutputPath> <OutputPath>..\bin\Content.Tests\</OutputPath>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="NUnit" Version="3.13.3" /> <PackageReference Include="NUnit" />
<PackageReference Include="NUnit.ConsoleRunner" Version="3.15.0" /> <PackageReference Include="NUnit3TestAdapter" />
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Content.Client\Content.Client.csproj" /> <ProjectReference Include="..\Content.Client\Content.Client.csproj" />

View File

@@ -58,7 +58,7 @@ namespace Content.Tests.Shared.Alert
entManager.EventBus.RaiseComponentEvent(alertsComponent, getty); entManager.EventBus.RaiseComponentEvent(alertsComponent, getty);
var alertState = (AlertsComponent.AlertsComponent_AutoState) getty.State!; var alertState = (AlertsComponent.AlertsComponent_AutoState) getty.State!;
Assert.NotNull(alertState); Assert.That(alertState, Is.Not.Null);
Assert.That(alertState.Alerts.Count, Is.EqualTo(1)); Assert.That(alertState.Alerts.Count, Is.EqualTo(1));
Assert.That(alertState.Alerts.ContainsKey(lowpressure.AlertKey)); Assert.That(alertState.Alerts.ContainsKey(lowpressure.AlertKey));

View File

@@ -54,7 +54,7 @@ public sealed class DirectionRandomizerTest : RobustUnitTest
// Because of above foreach this asserts // Because of above foreach this asserts
// rand[1,2,3] - [1,2,3] == {} // rand[1,2,3] - [1,2,3] == {}
// i.e. randomized set minus original set is empty // i.e. randomized set minus original set is empty
Assert.IsTrue(set.Count == 0, "Each element must appear once "); Assert.That(set.Count == 0, "Each element must appear once ");
} }
} }

View File

@@ -35,7 +35,7 @@ namespace Content.Tests.Shared.Utility
var random = IoCManager.Resolve<IRobustRandom>(); var random = IoCManager.Resolve<IRobustRandom>();
var id = random.Pick(dataSet); var id = random.Pick(dataSet);
Assert.NotNull(id); Assert.That(id, Is.Not.Null);
} }
} }
} }

View File

@@ -5,7 +5,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="YamlDotNet" Version="12.0.0" /> <PackageReference Include="YamlDotNet" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -19,7 +19,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="NUnit" Version="3.13.3" /> <PackageReference Include="NUnit" />
</ItemGroup> </ItemGroup>
<Import Project="..\RobustToolbox\MSBuild\Robust.Properties.targets" /> <Import Project="..\RobustToolbox\MSBuild\Robust.Properties.targets" />

19
Directory.Packages.props Normal file
View File

@@ -0,0 +1,19 @@
<Project>
<Import Project="RobustToolbox/Directory.Packages.props" />
<ItemGroup>
<!--
Remove EF Core packages from Robust. They're only used by Robust.Benchmarks anyways.
-->
<PackageVersion Remove="Npgsql.EntityFrameworkCore.PostgreSQL" />
<PackageVersion Remove="Microsoft.EntityFrameworkCore.Design" />
<PackageVersion Include="CsvHelper" Version="30.0.1" />
<PackageVersion Include="ImGui.NET" Version="1.87.3" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="8.0.0" />
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.0" />
<PackageVersion Include="OpenTK" Version="4.7.2" />
<PackageVersion Include="Veldrid" Version="4.8.0" />
<PackageVersion Include="Veldrid.SPIRV" Version="1.0.15" />
</ItemGroup>
</Project>

View File

@@ -6,10 +6,10 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="ImGui.NET" Version="1.87.3" /> <PackageReference Include="ImGui.NET" />
<PackageReference Include="OpenTK" Version="4.7.2" /> <PackageReference Include="OpenTK" />
<PackageReference Include="Veldrid" Version="4.8.0" /> <PackageReference Include="Veldrid" />
<PackageReference Include="Veldrid.SPIRV" Version="1.0.15" /> <PackageReference Include="Veldrid.SPIRV" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -1,7 +1,7 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16 # Visual Studio Version 17
VisualStudioVersion = 16.0.29709.97 VisualStudioVersion = 17.8.34330.188
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.Shared", "Content.Shared\Content.Shared.csproj", "{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.Shared", "Content.Shared\Content.Shared.csproj", "{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}"
EndProject EndProject
@@ -46,31 +46,29 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Content.Server.Database", "
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MSBuild", "MSBuild", "{50404922-9637-4394-BF59-165D0850ADC8}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MSBuild", "MSBuild", "{50404922-9637-4394-BF59-165D0850ADC8}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
RobustToolbox\MSBuild\Robust.DefineConstants.targets = RobustToolbox\MSBuild\Robust.DefineConstants.targets
RobustToolbox\MSBuild\Robust.Engine.targets = RobustToolbox\MSBuild\Robust.Engine.targets
RobustToolbox\MSBuild\Robust.Properties.targets = RobustToolbox\MSBuild\Robust.Properties.targets
RobustToolbox\MSBuild\XamlIL.targets = RobustToolbox\MSBuild\XamlIL.targets
RobustToolbox\MSBuild\Robust.Analyzers.targets = RobustToolbox\MSBuild\Robust.Analyzers.targets RobustToolbox\MSBuild\Robust.Analyzers.targets = RobustToolbox\MSBuild\Robust.Analyzers.targets
RobustToolbox\MSBuild\Robust.Engine.props = RobustToolbox\MSBuild\Robust.Engine.props
RobustToolbox\MSBuild\Robust.Engine.Version.props = RobustToolbox\MSBuild\Robust.Engine.Version.props
RobustToolbox\MSBuild\Robust.Trimming.targets = RobustToolbox\MSBuild\Robust.Trimming.targets
RobustToolbox\MSBuild\Robust.Platform.props = RobustToolbox\MSBuild\Robust.Platform.props
RobustToolbox\MSBuild\Robust.Configurations.props = RobustToolbox\MSBuild\Robust.Configurations.props
RobustToolbox\MSBuild\Robust.CompNetworkGenerator.targets = RobustToolbox\MSBuild\Robust.CompNetworkGenerator.targets RobustToolbox\MSBuild\Robust.CompNetworkGenerator.targets = RobustToolbox\MSBuild\Robust.CompNetworkGenerator.targets
RobustToolbox\MSBuild\Robust.Configurations.props = RobustToolbox\MSBuild\Robust.Configurations.props
RobustToolbox\MSBuild\Robust.DefineConstants.targets = RobustToolbox\MSBuild\Robust.DefineConstants.targets
RobustToolbox\MSBuild\Robust.Engine.props = RobustToolbox\MSBuild\Robust.Engine.props
RobustToolbox\MSBuild\Robust.Engine.targets = RobustToolbox\MSBuild\Robust.Engine.targets
RobustToolbox\MSBuild\Robust.Engine.Version.props = RobustToolbox\MSBuild\Robust.Engine.Version.props
RobustToolbox\MSBuild\Robust.Platform.props = RobustToolbox\MSBuild\Robust.Platform.props
RobustToolbox\MSBuild\Robust.Properties.targets = RobustToolbox\MSBuild\Robust.Properties.targets
RobustToolbox\MSBuild\Robust.Trimming.targets = RobustToolbox\MSBuild\Robust.Trimming.targets
RobustToolbox\MSBuild\XamlIL.targets = RobustToolbox\MSBuild\XamlIL.targets
EndProjectSection EndProjectSection
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{806ED41A-411B-4B3B-BEB6-DEC6DCA4C205}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{806ED41A-411B-4B3B-BEB6-DEC6DCA4C205}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
Tools\gen_build_info.py = Tools\gen_build_info.py
Tools\generate_hashes.ps1 = Tools\generate_hashes.ps1 Tools\generate_hashes.ps1 = Tools\generate_hashes.ps1
Tools\gen_build_info.py = Tools\gen_build_info.py
EndProjectSection EndProjectSection
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Robust.Shared.Scripting", "RobustToolbox\Robust.Shared.Scripting\Robust.Shared.Scripting.csproj", "{41B450C0-A361-4CD7-8121-7072B8995CFC}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Robust.Shared.Scripting", "RobustToolbox\Robust.Shared.Scripting\Robust.Shared.Scripting.csproj", "{41B450C0-A361-4CD7-8121-7072B8995CFC}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NetSerializer", "RobustToolbox\NetSerializer\NetSerializer\NetSerializer.csproj", "{7B9472D3-79D4-48D1-9B22-BCDE518FE842}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NetSerializer", "RobustToolbox\NetSerializer\NetSerializer\NetSerializer.csproj", "{7B9472D3-79D4-48D1-9B22-BCDE518FE842}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Robust.Physics", "RobustToolbox\Robust.Physics\Robust.Physics.csproj", "{3BC34700-882F-426B-82BB-56D5708B5E0D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.LoaderApi", "RobustToolbox\Robust.LoaderApi\Robust.LoaderApi\Robust.LoaderApi.csproj", "{1FAE651D-29D8-437A-9864-47CE0D180016}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.LoaderApi", "RobustToolbox\Robust.LoaderApi\Robust.LoaderApi\Robust.LoaderApi.csproj", "{1FAE651D-29D8-437A-9864-47CE0D180016}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Client.NameGenerator", "RobustToolbox\Robust.Client.NameGenerator\Robust.Client.NameGenerator.csproj", "{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Client.NameGenerator", "RobustToolbox\Robust.Client.NameGenerator\Robust.Client.NameGenerator.csproj", "{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}"
@@ -110,11 +108,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Project Files", "Project Fi
.editorconfig = .editorconfig .editorconfig = .editorconfig
.gitattributes = .gitattributes .gitattributes = .gitattributes
.gitignore = .gitignore .gitignore = .gitignore
Directory.Packages.props = Directory.Packages.props
README.md = README.md README.md = README.md
EndProjectSection EndProjectSection
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Project Files", "Project Files", "{A965CB3B-FD31-44AF-8872-85ABA436098D}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Project Files", "Project Files", "{A965CB3B-FD31-44AF-8872-85ABA436098D}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
RobustToolbox\Directory.Packages.props = RobustToolbox\Directory.Packages.props
RobustToolbox\README.md = RobustToolbox\README.md RobustToolbox\README.md = RobustToolbox\README.md
RobustToolbox\RELEASE-NOTES.md = RobustToolbox\RELEASE-NOTES.md RobustToolbox\RELEASE-NOTES.md = RobustToolbox\RELEASE-NOTES.md
EndProjectSection EndProjectSection
@@ -127,317 +127,319 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Serialization.Genera
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Content.PatreonParser", "Content.PatreonParser\Content.PatreonParser.csproj", "{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Content.PatreonParser", "Content.PatreonParser\Content.PatreonParser.csproj", "{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Analyzers.Tests", "RobustToolbox\Robust.Analyzers.Tests\Robust.Analyzers.Tests.csproj", "{83F510FE-9B50-4D96-AFAB-CC13998D6AFE}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
DebugOpt|Any CPU = DebugOpt|Any CPU DebugOpt|Any CPU = DebugOpt|Any CPU
Release|Any CPU = Release|Any CPU
Tools|Any CPU = Tools|Any CPU Tools|Any CPU = Tools|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Release|Any CPU.Build.0 = Release|Any CPU
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Release|Any CPU.Build.0 = Release|Any CPU
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Tools|Any CPU.Build.0 = Tools|Any CPU {26AEEBB3-DDE7-443A-9F43-7BC7F4ACF6B5}.Tools|Any CPU.Build.0 = Tools|Any CPU
{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Debug|Any CPU.Build.0 = Debug|Any CPU {B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Release|Any CPU.Build.0 = Release|Any CPU
{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Release|Any CPU.Build.0 = Release|Any CPU
{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Tools|Any CPU.Build.0 = Tools|Any CPU {B38DBBD0-04C2-4D1A-84E2-B3446F6ADF2A}.Tools|Any CPU.Build.0 = Tools|Any CPU
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Debug|Any CPU.Build.0 = Debug|Any CPU {A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Release|Any CPU.Build.0 = Release|Any CPU
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Release|Any CPU.Build.0 = Release|Any CPU
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Tools|Any CPU.Build.0 = Tools|Any CPU {A2E5F175-78AF-4DDD-8F97-E2D2552372ED}.Tools|Any CPU.Build.0 = Tools|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C899FCA4-7037-4E49-ABC2-44DE72487110}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Debug|Any CPU.Build.0 = Debug|Any CPU {C899FCA4-7037-4E49-ABC2-44DE72487110}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {C899FCA4-7037-4E49-ABC2-44DE72487110}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {C899FCA4-7037-4E49-ABC2-44DE72487110}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {C899FCA4-7037-4E49-ABC2-44DE72487110}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{C899FCA4-7037-4E49-ABC2-44DE72487110}.Tools|Any CPU.Build.0 = Tools|Any CPU {C899FCA4-7037-4E49-ABC2-44DE72487110}.Tools|Any CPU.Build.0 = Tools|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|Any CPU.Build.0 = Debug|Any CPU {8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|Any CPU.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {8EDF4429-251A-416D-BB68-93F227191BCF}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {8EDF4429-251A-416D-BB68-93F227191BCF}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|Any CPU.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {8EDF4429-251A-416D-BB68-93F227191BCF}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Tools|Any CPU.Build.0 = Tools|Any CPU {8EDF4429-251A-416D-BB68-93F227191BCF}.Tools|Any CPU.Build.0 = Tools|Any CPU
{59250BAF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {59250BAF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{59250BAF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU {59250BAF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
{59250BAF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
{59250BAF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
{59250BAF-0000-0000-0000-000000000000}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {59250BAF-0000-0000-0000-000000000000}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{59250BAF-0000-0000-0000-000000000000}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {59250BAF-0000-0000-0000-000000000000}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{59250BAF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
{59250BAF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
{59250BAF-0000-0000-0000-000000000000}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {59250BAF-0000-0000-0000-000000000000}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{59250BAF-0000-0000-0000-000000000000}.Tools|Any CPU.Build.0 = Tools|Any CPU {59250BAF-0000-0000-0000-000000000000}.Tools|Any CPU.Build.0 = Tools|Any CPU
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {83429BD6-6358-4B18-BE51-401DF8EA2673}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Debug|Any CPU.Build.0 = Debug|Any CPU {83429BD6-6358-4B18-BE51-401DF8EA2673}.Debug|Any CPU.Build.0 = Debug|Any CPU
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Release|Any CPU.ActiveCfg = Release|Any CPU
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Release|Any CPU.Build.0 = Release|Any CPU
{83429BD6-6358-4B18-BE51-401DF8EA2673}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {83429BD6-6358-4B18-BE51-401DF8EA2673}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{83429BD6-6358-4B18-BE51-401DF8EA2673}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {83429BD6-6358-4B18-BE51-401DF8EA2673}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Release|Any CPU.ActiveCfg = Release|Any CPU
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Release|Any CPU.Build.0 = Release|Any CPU
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {83429BD6-6358-4B18-BE51-401DF8EA2673}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{83429BD6-6358-4B18-BE51-401DF8EA2673}.Tools|Any CPU.Build.0 = Tools|Any CPU {83429BD6-6358-4B18-BE51-401DF8EA2673}.Tools|Any CPU.Build.0 = Tools|Any CPU
{B04AAE71-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B04AAE71-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B04AAE71-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU {B04AAE71-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B04AAE71-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B04AAE71-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
{B04AAE71-0000-0000-0000-000000000000}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {B04AAE71-0000-0000-0000-000000000000}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{B04AAE71-0000-0000-0000-000000000000}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {B04AAE71-0000-0000-0000-000000000000}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{B04AAE71-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B04AAE71-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
{B04AAE71-0000-0000-0000-000000000000}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {B04AAE71-0000-0000-0000-000000000000}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{B04AAE71-0000-0000-0000-000000000000}.Tools|Any CPU.Build.0 = Tools|Any CPU {B04AAE71-0000-0000-0000-000000000000}.Tools|Any CPU.Build.0 = Tools|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {93F23A82-00C5-4572-964E-E7C9457726D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.Debug|Any CPU.Build.0 = Debug|Any CPU {93F23A82-00C5-4572-964E-E7C9457726D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.Release|Any CPU.Build.0 = Release|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {93F23A82-00C5-4572-964E-E7C9457726D4}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {93F23A82-00C5-4572-964E-E7C9457726D4}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.Release|Any CPU.Build.0 = Release|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {93F23A82-00C5-4572-964E-E7C9457726D4}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{93F23A82-00C5-4572-964E-E7C9457726D4}.Tools|Any CPU.Build.0 = Tools|Any CPU {93F23A82-00C5-4572-964E-E7C9457726D4}.Tools|Any CPU.Build.0 = Tools|Any CPU
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Debug|Any CPU.Build.0 = Debug|Any CPU {F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Release|Any CPU.Build.0 = Release|Any CPU
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Release|Any CPU.Build.0 = Release|Any CPU
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Tools|Any CPU.Build.0 = Tools|Any CPU {F0ADA779-40B8-4F7E-BA6C-CDB19F3065D9}.Tools|Any CPU.Build.0 = Tools|Any CPU
{0529F740-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0529F740-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0529F740-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU {0529F740-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0529F740-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0529F740-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
{0529F740-0000-0000-0000-000000000000}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {0529F740-0000-0000-0000-000000000000}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{0529F740-0000-0000-0000-000000000000}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {0529F740-0000-0000-0000-000000000000}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{0529F740-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0529F740-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
{0529F740-0000-0000-0000-000000000000}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {0529F740-0000-0000-0000-000000000000}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{0529F740-0000-0000-0000-000000000000}.Tools|Any CPU.Build.0 = Tools|Any CPU {0529F740-0000-0000-0000-000000000000}.Tools|Any CPU.Build.0 = Tools|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Debug|Any CPU.Build.0 = Debug|Any CPU {AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Release|Any CPU.Build.0 = Release|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Release|Any CPU.Build.0 = Release|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Tools|Any CPU.Build.0 = Tools|Any CPU {AB7AF1C8-30FF-4436-9DF0-179BE5B0C132}.Tools|Any CPU.Build.0 = Tools|Any CPU
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Debug|Any CPU.Build.0 = Debug|Any CPU {7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Release|Any CPU.Build.0 = Release|Any CPU
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Release|Any CPU.Build.0 = Release|Any CPU
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Tools|Any CPU.Build.0 = Tools|Any CPU {7AC832A1-2461-4EB5-AC26-26F6AFFA9E46}.Tools|Any CPU.Build.0 = Tools|Any CPU
{4809F412-3132-419E-BF9D-CCF7593C3533}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4809F412-3132-419E-BF9D-CCF7593C3533}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4809F412-3132-419E-BF9D-CCF7593C3533}.Debug|Any CPU.Build.0 = Debug|Any CPU {4809F412-3132-419E-BF9D-CCF7593C3533}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4809F412-3132-419E-BF9D-CCF7593C3533}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4809F412-3132-419E-BF9D-CCF7593C3533}.Release|Any CPU.Build.0 = Release|Any CPU
{4809F412-3132-419E-BF9D-CCF7593C3533}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {4809F412-3132-419E-BF9D-CCF7593C3533}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{4809F412-3132-419E-BF9D-CCF7593C3533}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {4809F412-3132-419E-BF9D-CCF7593C3533}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{4809F412-3132-419E-BF9D-CCF7593C3533}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4809F412-3132-419E-BF9D-CCF7593C3533}.Release|Any CPU.Build.0 = Release|Any CPU
{4809F412-3132-419E-BF9D-CCF7593C3533}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {4809F412-3132-419E-BF9D-CCF7593C3533}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{4809F412-3132-419E-BF9D-CCF7593C3533}.Tools|Any CPU.Build.0 = Tools|Any CPU {4809F412-3132-419E-BF9D-CCF7593C3533}.Tools|Any CPU.Build.0 = Tools|Any CPU
{45C9B43F-305D-4651-9863-F6384CBC847F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {45C9B43F-305D-4651-9863-F6384CBC847F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{45C9B43F-305D-4651-9863-F6384CBC847F}.Debug|Any CPU.Build.0 = Debug|Any CPU {45C9B43F-305D-4651-9863-F6384CBC847F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{45C9B43F-305D-4651-9863-F6384CBC847F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{45C9B43F-305D-4651-9863-F6384CBC847F}.Release|Any CPU.Build.0 = Release|Any CPU
{45C9B43F-305D-4651-9863-F6384CBC847F}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {45C9B43F-305D-4651-9863-F6384CBC847F}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{45C9B43F-305D-4651-9863-F6384CBC847F}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {45C9B43F-305D-4651-9863-F6384CBC847F}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{45C9B43F-305D-4651-9863-F6384CBC847F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{45C9B43F-305D-4651-9863-F6384CBC847F}.Release|Any CPU.Build.0 = Release|Any CPU
{45C9B43F-305D-4651-9863-F6384CBC847F}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {45C9B43F-305D-4651-9863-F6384CBC847F}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{45C9B43F-305D-4651-9863-F6384CBC847F}.Tools|Any CPU.Build.0 = Tools|Any CPU {45C9B43F-305D-4651-9863-F6384CBC847F}.Tools|Any CPU.Build.0 = Tools|Any CPU
{41B450C0-A361-4CD7-8121-7072B8995CFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {41B450C0-A361-4CD7-8121-7072B8995CFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{41B450C0-A361-4CD7-8121-7072B8995CFC}.Debug|Any CPU.Build.0 = Debug|Any CPU {41B450C0-A361-4CD7-8121-7072B8995CFC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{41B450C0-A361-4CD7-8121-7072B8995CFC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{41B450C0-A361-4CD7-8121-7072B8995CFC}.Release|Any CPU.Build.0 = Release|Any CPU
{41B450C0-A361-4CD7-8121-7072B8995CFC}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {41B450C0-A361-4CD7-8121-7072B8995CFC}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{41B450C0-A361-4CD7-8121-7072B8995CFC}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {41B450C0-A361-4CD7-8121-7072B8995CFC}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{41B450C0-A361-4CD7-8121-7072B8995CFC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{41B450C0-A361-4CD7-8121-7072B8995CFC}.Release|Any CPU.Build.0 = Release|Any CPU
{41B450C0-A361-4CD7-8121-7072B8995CFC}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {41B450C0-A361-4CD7-8121-7072B8995CFC}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{41B450C0-A361-4CD7-8121-7072B8995CFC}.Tools|Any CPU.Build.0 = Tools|Any CPU {41B450C0-A361-4CD7-8121-7072B8995CFC}.Tools|Any CPU.Build.0 = Tools|Any CPU
{7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Debug|Any CPU.Build.0 = Debug|Any CPU {7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Release|Any CPU.Build.0 = Release|Any CPU
{7B9472D3-79D4-48D1-9B22-BCDE518FE842}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {7B9472D3-79D4-48D1-9B22-BCDE518FE842}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{7B9472D3-79D4-48D1-9B22-BCDE518FE842}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {7B9472D3-79D4-48D1-9B22-BCDE518FE842}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Release|Any CPU.Build.0 = Release|Any CPU
{7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Tools|Any CPU.ActiveCfg = Release|Any CPU {7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Tools|Any CPU.ActiveCfg = Release|Any CPU
{7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Tools|Any CPU.Build.0 = Release|Any CPU {7B9472D3-79D4-48D1-9B22-BCDE518FE842}.Tools|Any CPU.Build.0 = Release|Any CPU
{3BC34700-882F-426B-82BB-56D5708B5E0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3BC34700-882F-426B-82BB-56D5708B5E0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3BC34700-882F-426B-82BB-56D5708B5E0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3BC34700-882F-426B-82BB-56D5708B5E0D}.Release|Any CPU.Build.0 = Release|Any CPU
{3BC34700-882F-426B-82BB-56D5708B5E0D}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{3BC34700-882F-426B-82BB-56D5708B5E0D}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{3BC34700-882F-426B-82BB-56D5708B5E0D}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{3BC34700-882F-426B-82BB-56D5708B5E0D}.Tools|Any CPU.Build.0 = Tools|Any CPU
{1FAE651D-29D8-437A-9864-47CE0D180016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1FAE651D-29D8-437A-9864-47CE0D180016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1FAE651D-29D8-437A-9864-47CE0D180016}.Debug|Any CPU.Build.0 = Debug|Any CPU {1FAE651D-29D8-437A-9864-47CE0D180016}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1FAE651D-29D8-437A-9864-47CE0D180016}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1FAE651D-29D8-437A-9864-47CE0D180016}.Release|Any CPU.Build.0 = Release|Any CPU
{1FAE651D-29D8-437A-9864-47CE0D180016}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {1FAE651D-29D8-437A-9864-47CE0D180016}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{1FAE651D-29D8-437A-9864-47CE0D180016}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {1FAE651D-29D8-437A-9864-47CE0D180016}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{1FAE651D-29D8-437A-9864-47CE0D180016}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1FAE651D-29D8-437A-9864-47CE0D180016}.Release|Any CPU.Build.0 = Release|Any CPU
{1FAE651D-29D8-437A-9864-47CE0D180016}.Tools|Any CPU.ActiveCfg = Release|Any CPU {1FAE651D-29D8-437A-9864-47CE0D180016}.Tools|Any CPU.ActiveCfg = Release|Any CPU
{1FAE651D-29D8-437A-9864-47CE0D180016}.Tools|Any CPU.Build.0 = Release|Any CPU {1FAE651D-29D8-437A-9864-47CE0D180016}.Tools|Any CPU.Build.0 = Release|Any CPU
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Debug|Any CPU.Build.0 = Debug|Any CPU {3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Release|Any CPU.Build.0 = Release|Any CPU
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Release|Any CPU.Build.0 = Release|Any CPU
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Tools|Any CPU.ActiveCfg = Release|Any CPU {3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Tools|Any CPU.ActiveCfg = Release|Any CPU
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Tools|Any CPU.Build.0 = Release|Any CPU {3CFEB7DB-12C6-46F3-89FC-1450F3016FFA}.Tools|Any CPU.Build.0 = Release|Any CPU
{8922428F-17C3-47A7-BFE9-570DEB2464DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8922428F-17C3-47A7-BFE9-570DEB2464DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8922428F-17C3-47A7-BFE9-570DEB2464DA}.Debug|Any CPU.Build.0 = Debug|Any CPU {8922428F-17C3-47A7-BFE9-570DEB2464DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8922428F-17C3-47A7-BFE9-570DEB2464DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8922428F-17C3-47A7-BFE9-570DEB2464DA}.Release|Any CPU.Build.0 = Release|Any CPU
{8922428F-17C3-47A7-BFE9-570DEB2464DA}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {8922428F-17C3-47A7-BFE9-570DEB2464DA}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{8922428F-17C3-47A7-BFE9-570DEB2464DA}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {8922428F-17C3-47A7-BFE9-570DEB2464DA}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{8922428F-17C3-47A7-BFE9-570DEB2464DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8922428F-17C3-47A7-BFE9-570DEB2464DA}.Release|Any CPU.Build.0 = Release|Any CPU
{8922428F-17C3-47A7-BFE9-570DEB2464DA}.Tools|Any CPU.ActiveCfg = Release|Any CPU {8922428F-17C3-47A7-BFE9-570DEB2464DA}.Tools|Any CPU.ActiveCfg = Release|Any CPU
{8922428F-17C3-47A7-BFE9-570DEB2464DA}.Tools|Any CPU.Build.0 = Release|Any CPU {8922428F-17C3-47A7-BFE9-570DEB2464DA}.Tools|Any CPU.Build.0 = Release|Any CPU
{16F7DE32-0186-44B9-9345-0C20D1BF2422}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {16F7DE32-0186-44B9-9345-0C20D1BF2422}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{16F7DE32-0186-44B9-9345-0C20D1BF2422}.Debug|Any CPU.Build.0 = Debug|Any CPU {16F7DE32-0186-44B9-9345-0C20D1BF2422}.Debug|Any CPU.Build.0 = Debug|Any CPU
{16F7DE32-0186-44B9-9345-0C20D1BF2422}.Release|Any CPU.ActiveCfg = Release|Any CPU
{16F7DE32-0186-44B9-9345-0C20D1BF2422}.Release|Any CPU.Build.0 = Release|Any CPU
{16F7DE32-0186-44B9-9345-0C20D1BF2422}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {16F7DE32-0186-44B9-9345-0C20D1BF2422}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{16F7DE32-0186-44B9-9345-0C20D1BF2422}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {16F7DE32-0186-44B9-9345-0C20D1BF2422}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{16F7DE32-0186-44B9-9345-0C20D1BF2422}.Release|Any CPU.ActiveCfg = Release|Any CPU
{16F7DE32-0186-44B9-9345-0C20D1BF2422}.Release|Any CPU.Build.0 = Release|Any CPU
{16F7DE32-0186-44B9-9345-0C20D1BF2422}.Tools|Any CPU.ActiveCfg = Release|Any CPU {16F7DE32-0186-44B9-9345-0C20D1BF2422}.Tools|Any CPU.ActiveCfg = Release|Any CPU
{16F7DE32-0186-44B9-9345-0C20D1BF2422}.Tools|Any CPU.Build.0 = Release|Any CPU {16F7DE32-0186-44B9-9345-0C20D1BF2422}.Tools|Any CPU.Build.0 = Release|Any CPU
{23F09C45-950E-4DB7-A465-E937450FF008}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {23F09C45-950E-4DB7-A465-E937450FF008}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{23F09C45-950E-4DB7-A465-E937450FF008}.Debug|Any CPU.Build.0 = Debug|Any CPU {23F09C45-950E-4DB7-A465-E937450FF008}.Debug|Any CPU.Build.0 = Debug|Any CPU
{23F09C45-950E-4DB7-A465-E937450FF008}.Release|Any CPU.ActiveCfg = Release|Any CPU
{23F09C45-950E-4DB7-A465-E937450FF008}.Release|Any CPU.Build.0 = Release|Any CPU
{23F09C45-950E-4DB7-A465-E937450FF008}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {23F09C45-950E-4DB7-A465-E937450FF008}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{23F09C45-950E-4DB7-A465-E937450FF008}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {23F09C45-950E-4DB7-A465-E937450FF008}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{23F09C45-950E-4DB7-A465-E937450FF008}.Release|Any CPU.ActiveCfg = Release|Any CPU
{23F09C45-950E-4DB7-A465-E937450FF008}.Release|Any CPU.Build.0 = Release|Any CPU
{23F09C45-950E-4DB7-A465-E937450FF008}.Tools|Any CPU.ActiveCfg = Release|Any CPU {23F09C45-950E-4DB7-A465-E937450FF008}.Tools|Any CPU.ActiveCfg = Release|Any CPU
{23F09C45-950E-4DB7-A465-E937450FF008}.Tools|Any CPU.Build.0 = Release|Any CPU {23F09C45-950E-4DB7-A465-E937450FF008}.Tools|Any CPU.Build.0 = Release|Any CPU
{440426C1-8DCA-43F6-967F-94439B8DAF47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {440426C1-8DCA-43F6-967F-94439B8DAF47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{440426C1-8DCA-43F6-967F-94439B8DAF47}.Debug|Any CPU.Build.0 = Debug|Any CPU {440426C1-8DCA-43F6-967F-94439B8DAF47}.Debug|Any CPU.Build.0 = Debug|Any CPU
{440426C1-8DCA-43F6-967F-94439B8DAF47}.Release|Any CPU.ActiveCfg = Release|Any CPU
{440426C1-8DCA-43F6-967F-94439B8DAF47}.Release|Any CPU.Build.0 = Release|Any CPU
{440426C1-8DCA-43F6-967F-94439B8DAF47}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {440426C1-8DCA-43F6-967F-94439B8DAF47}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{440426C1-8DCA-43F6-967F-94439B8DAF47}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {440426C1-8DCA-43F6-967F-94439B8DAF47}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{440426C1-8DCA-43F6-967F-94439B8DAF47}.Release|Any CPU.ActiveCfg = Release|Any CPU
{440426C1-8DCA-43F6-967F-94439B8DAF47}.Release|Any CPU.Build.0 = Release|Any CPU
{440426C1-8DCA-43F6-967F-94439B8DAF47}.Tools|Any CPU.ActiveCfg = Release|Any CPU {440426C1-8DCA-43F6-967F-94439B8DAF47}.Tools|Any CPU.ActiveCfg = Release|Any CPU
{440426C1-8DCA-43F6-967F-94439B8DAF47}.Tools|Any CPU.Build.0 = Release|Any CPU {440426C1-8DCA-43F6-967F-94439B8DAF47}.Tools|Any CPU.Build.0 = Release|Any CPU
{75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Debug|Any CPU.Build.0 = Debug|Any CPU {75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Release|Any CPU.Build.0 = Release|Any CPU
{75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Release|Any CPU.Build.0 = Release|Any CPU
{75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Tools|Any CPU.Build.0 = Tools|Any CPU {75AB8F8D-9E56-4B12-85E3-E03A852B31CC}.Tools|Any CPU.Build.0 = Tools|Any CPU
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Debug|Any CPU.Build.0 = Debug|Any CPU {88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Release|Any CPU.Build.0 = Release|Any CPU
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Release|Any CPU.Build.0 = Release|Any CPU
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Tools|Any CPU.ActiveCfg = Release|Any CPU {88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Tools|Any CPU.ActiveCfg = Release|Any CPU
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Tools|Any CPU.Build.0 = Release|Any CPU {88B0FC0F-7209-40E2-AF16-EB90AF727C5B}.Tools|Any CPU.Build.0 = Release|Any CPU
{A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Debug|Any CPU.Build.0 = Debug|Any CPU {A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Release|Any CPU.Build.0 = Release|Any CPU
{A59E2FCC-93CF-4886-8EA7-94F021A7475D}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {A59E2FCC-93CF-4886-8EA7-94F021A7475D}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{A59E2FCC-93CF-4886-8EA7-94F021A7475D}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {A59E2FCC-93CF-4886-8EA7-94F021A7475D}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Release|Any CPU.Build.0 = Release|Any CPU
{A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Tools|Any CPU.Build.0 = Tools|Any CPU {A59E2FCC-93CF-4886-8EA7-94F021A7475D}.Tools|Any CPU.Build.0 = Tools|Any CPU
{A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Debug|Any CPU.Build.0 = Debug|Any CPU {A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Release|Any CPU.Build.0 = Release|Any CPU
{A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Release|Any CPU.Build.0 = Release|Any CPU
{A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Tools|Any CPU.ActiveCfg = Release|Any CPU {A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Tools|Any CPU.ActiveCfg = Release|Any CPU
{A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Tools|Any CPU.Build.0 = Release|Any CPU {A3C5B00A-D232-4A01-B82E-B0E58BFD5C12}.Tools|Any CPU.Build.0 = Release|Any CPU
{8A21C7CA-2EB8-40E5-8043-33582C06D139}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8A21C7CA-2EB8-40E5-8043-33582C06D139}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A21C7CA-2EB8-40E5-8043-33582C06D139}.Debug|Any CPU.Build.0 = Debug|Any CPU {8A21C7CA-2EB8-40E5-8043-33582C06D139}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A21C7CA-2EB8-40E5-8043-33582C06D139}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A21C7CA-2EB8-40E5-8043-33582C06D139}.Release|Any CPU.Build.0 = Release|Any CPU
{8A21C7CA-2EB8-40E5-8043-33582C06D139}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {8A21C7CA-2EB8-40E5-8043-33582C06D139}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{8A21C7CA-2EB8-40E5-8043-33582C06D139}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {8A21C7CA-2EB8-40E5-8043-33582C06D139}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{8A21C7CA-2EB8-40E5-8043-33582C06D139}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A21C7CA-2EB8-40E5-8043-33582C06D139}.Release|Any CPU.Build.0 = Release|Any CPU
{8A21C7CA-2EB8-40E5-8043-33582C06D139}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {8A21C7CA-2EB8-40E5-8043-33582C06D139}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{8A21C7CA-2EB8-40E5-8043-33582C06D139}.Tools|Any CPU.Build.0 = Tools|Any CPU {8A21C7CA-2EB8-40E5-8043-33582C06D139}.Tools|Any CPU.Build.0 = Tools|Any CPU
{1C048C9F-00A9-4796-BE4D-BB36B7769720}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1C048C9F-00A9-4796-BE4D-BB36B7769720}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1C048C9F-00A9-4796-BE4D-BB36B7769720}.Debug|Any CPU.Build.0 = Debug|Any CPU {1C048C9F-00A9-4796-BE4D-BB36B7769720}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1C048C9F-00A9-4796-BE4D-BB36B7769720}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1C048C9F-00A9-4796-BE4D-BB36B7769720}.Release|Any CPU.Build.0 = Release|Any CPU
{1C048C9F-00A9-4796-BE4D-BB36B7769720}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {1C048C9F-00A9-4796-BE4D-BB36B7769720}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{1C048C9F-00A9-4796-BE4D-BB36B7769720}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {1C048C9F-00A9-4796-BE4D-BB36B7769720}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{1C048C9F-00A9-4796-BE4D-BB36B7769720}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1C048C9F-00A9-4796-BE4D-BB36B7769720}.Release|Any CPU.Build.0 = Release|Any CPU
{1C048C9F-00A9-4796-BE4D-BB36B7769720}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {1C048C9F-00A9-4796-BE4D-BB36B7769720}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{1C048C9F-00A9-4796-BE4D-BB36B7769720}.Tools|Any CPU.Build.0 = Tools|Any CPU {1C048C9F-00A9-4796-BE4D-BB36B7769720}.Tools|Any CPU.Build.0 = Tools|Any CPU
{8842381D-3426-4BA8-93DA-599AB14D88E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8842381D-3426-4BA8-93DA-599AB14D88E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8842381D-3426-4BA8-93DA-599AB14D88E9}.Debug|Any CPU.Build.0 = Debug|Any CPU {8842381D-3426-4BA8-93DA-599AB14D88E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8842381D-3426-4BA8-93DA-599AB14D88E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8842381D-3426-4BA8-93DA-599AB14D88E9}.Release|Any CPU.Build.0 = Release|Any CPU
{8842381D-3426-4BA8-93DA-599AB14D88E9}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {8842381D-3426-4BA8-93DA-599AB14D88E9}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{8842381D-3426-4BA8-93DA-599AB14D88E9}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {8842381D-3426-4BA8-93DA-599AB14D88E9}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{8842381D-3426-4BA8-93DA-599AB14D88E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8842381D-3426-4BA8-93DA-599AB14D88E9}.Release|Any CPU.Build.0 = Release|Any CPU
{8842381D-3426-4BA8-93DA-599AB14D88E9}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {8842381D-3426-4BA8-93DA-599AB14D88E9}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{8842381D-3426-4BA8-93DA-599AB14D88E9}.Tools|Any CPU.Build.0 = Tools|Any CPU {8842381D-3426-4BA8-93DA-599AB14D88E9}.Tools|Any CPU.Build.0 = Tools|Any CPU
{199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Debug|Any CPU.Build.0 = Debug|Any CPU {199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Release|Any CPU.Build.0 = Release|Any CPU
{199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Release|Any CPU.Build.0 = Release|Any CPU
{199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Tools|Any CPU.Build.0 = Tools|Any CPU {199BBEA1-7627-434B-B6F6-0F52A7C0E1E0}.Tools|Any CPU.Build.0 = Tools|Any CPU
{952AAF2A-DF63-4A7D-8094-3453893EBA80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {952AAF2A-DF63-4A7D-8094-3453893EBA80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{952AAF2A-DF63-4A7D-8094-3453893EBA80}.Debug|Any CPU.Build.0 = Debug|Any CPU {952AAF2A-DF63-4A7D-8094-3453893EBA80}.Debug|Any CPU.Build.0 = Debug|Any CPU
{952AAF2A-DF63-4A7D-8094-3453893EBA80}.Release|Any CPU.ActiveCfg = Release|Any CPU
{952AAF2A-DF63-4A7D-8094-3453893EBA80}.Release|Any CPU.Build.0 = Release|Any CPU
{952AAF2A-DF63-4A7D-8094-3453893EBA80}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {952AAF2A-DF63-4A7D-8094-3453893EBA80}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{952AAF2A-DF63-4A7D-8094-3453893EBA80}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {952AAF2A-DF63-4A7D-8094-3453893EBA80}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{952AAF2A-DF63-4A7D-8094-3453893EBA80}.Release|Any CPU.ActiveCfg = Release|Any CPU
{952AAF2A-DF63-4A7D-8094-3453893EBA80}.Release|Any CPU.Build.0 = Release|Any CPU
{952AAF2A-DF63-4A7D-8094-3453893EBA80}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {952AAF2A-DF63-4A7D-8094-3453893EBA80}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{952AAF2A-DF63-4A7D-8094-3453893EBA80}.Tools|Any CPU.Build.0 = Tools|Any CPU {952AAF2A-DF63-4A7D-8094-3453893EBA80}.Tools|Any CPU.Build.0 = Tools|Any CPU
{424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Debug|Any CPU.Build.0 = Debug|Any CPU {424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Release|Any CPU.Build.0 = Release|Any CPU
{424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Release|Any CPU.Build.0 = Release|Any CPU
{424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Tools|Any CPU.Build.0 = Tools|Any CPU {424445D4-F5D9-4CA9-A435-0A36E8AA28F3}.Tools|Any CPU.Build.0 = Tools|Any CPU
{A493616C-338D-47B7-8072-A7F14D034D0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A493616C-338D-47B7-8072-A7F14D034D0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A493616C-338D-47B7-8072-A7F14D034D0B}.Debug|Any CPU.Build.0 = Debug|Any CPU {A493616C-338D-47B7-8072-A7F14D034D0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A493616C-338D-47B7-8072-A7F14D034D0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A493616C-338D-47B7-8072-A7F14D034D0B}.Release|Any CPU.Build.0 = Release|Any CPU
{A493616C-338D-47B7-8072-A7F14D034D0B}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {A493616C-338D-47B7-8072-A7F14D034D0B}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{A493616C-338D-47B7-8072-A7F14D034D0B}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {A493616C-338D-47B7-8072-A7F14D034D0B}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{A493616C-338D-47B7-8072-A7F14D034D0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A493616C-338D-47B7-8072-A7F14D034D0B}.Release|Any CPU.Build.0 = Release|Any CPU
{A493616C-338D-47B7-8072-A7F14D034D0B}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {A493616C-338D-47B7-8072-A7F14D034D0B}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{A493616C-338D-47B7-8072-A7F14D034D0B}.Tools|Any CPU.Build.0 = Tools|Any CPU {A493616C-338D-47B7-8072-A7F14D034D0B}.Tools|Any CPU.Build.0 = Tools|Any CPU
{07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Debug|Any CPU.Build.0 = Debug|Any CPU {07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Release|Any CPU.Build.0 = Release|Any CPU
{07CA34A1-1D37-4771-A2E3-495A1044AE0B}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU {07CA34A1-1D37-4771-A2E3-495A1044AE0B}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{07CA34A1-1D37-4771-A2E3-495A1044AE0B}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU {07CA34A1-1D37-4771-A2E3-495A1044AE0B}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Release|Any CPU.Build.0 = Release|Any CPU
{07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Tools|Any CPU.Build.0 = Tools|Any CPU {07CA34A1-1D37-4771-A2E3-495A1044AE0B}.Tools|Any CPU.Build.0 = Tools|Any CPU
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Debug|Any CPU.Build.0 = Debug|Any CPU {6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Release|Any CPU.Build.0 = Release|Any CPU
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Release|Any CPU.Build.0 = Release|Any CPU
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Tools|Any CPU.ActiveCfg = Debug|Any CPU {6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Tools|Any CPU.ActiveCfg = Debug|Any CPU
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Tools|Any CPU.Build.0 = Debug|Any CPU {6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2}.Tools|Any CPU.Build.0 = Debug|Any CPU
{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Debug|Any CPU.Build.0 = Debug|Any CPU {D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Release|Any CPU.Build.0 = Release|Any CPU
{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU {D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU
{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU {D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU
{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Release|Any CPU.Build.0 = Release|Any CPU
{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Tools|Any CPU.ActiveCfg = Debug|Any CPU {D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Tools|Any CPU.ActiveCfg = Debug|Any CPU
{D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Tools|Any CPU.Build.0 = Debug|Any CPU {D97D8258-D915-4D1D-B1E3-1A8D00CF9EB5}.Tools|Any CPU.Build.0 = Debug|Any CPU
{83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.DebugOpt|Any CPU.ActiveCfg = DebugOpt|Any CPU
{83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.DebugOpt|Any CPU.Build.0 = DebugOpt|Any CPU
{83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.Release|Any CPU.Build.0 = Release|Any CPU
{83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
{83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.Tools|Any CPU.Build.0 = Tools|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@@ -454,12 +456,11 @@ Global
{50404922-9637-4394-BF59-165D0850ADC8} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {50404922-9637-4394-BF59-165D0850ADC8} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{41B450C0-A361-4CD7-8121-7072B8995CFC} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {41B450C0-A361-4CD7-8121-7072B8995CFC} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{7B9472D3-79D4-48D1-9B22-BCDE518FE842} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {7B9472D3-79D4-48D1-9B22-BCDE518FE842} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{3BC34700-882F-426B-82BB-56D5708B5E0D} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{1FAE651D-29D8-437A-9864-47CE0D180016} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {1FAE651D-29D8-437A-9864-47CE0D180016} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{3CFEB7DB-12C6-46F3-89FC-1450F3016FFA} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {3CFEB7DB-12C6-46F3-89FC-1450F3016FFA} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{8922428F-17C3-47A7-BFE9-570DEB2464DA} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {8922428F-17C3-47A7-BFE9-570DEB2464DA} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{AFF53804-115F-4E67-B81F-26265EA27880} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{16F7DE32-0186-44B9-9345-0C20D1BF2422} = {AFF53804-115F-4E67-B81F-26265EA27880} {16F7DE32-0186-44B9-9345-0C20D1BF2422} = {AFF53804-115F-4E67-B81F-26265EA27880}
{AFF53804-115F-4E67-B81F-26265EA27880} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{23F09C45-950E-4DB7-A465-E937450FF008} = {AFF53804-115F-4E67-B81F-26265EA27880} {23F09C45-950E-4DB7-A465-E937450FF008} = {AFF53804-115F-4E67-B81F-26265EA27880}
{440426C1-8DCA-43F6-967F-94439B8DAF47} = {AFF53804-115F-4E67-B81F-26265EA27880} {440426C1-8DCA-43F6-967F-94439B8DAF47} = {AFF53804-115F-4E67-B81F-26265EA27880}
{88B0FC0F-7209-40E2-AF16-EB90AF727C5B} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {88B0FC0F-7209-40E2-AF16-EB90AF727C5B} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
@@ -469,6 +470,7 @@ Global
{A965CB3B-FD31-44AF-8872-85ABA436098D} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {A965CB3B-FD31-44AF-8872-85ABA436098D} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{07CA34A1-1D37-4771-A2E3-495A1044AE0B} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {07CA34A1-1D37-4771-A2E3-495A1044AE0B} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} {6FBF108E-5CB5-47DE-8D7E-B496ABA9E3E2} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
{83F510FE-9B50-4D96-AFAB-CC13998D6AFE} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AA37ED9F-F8D6-468E-A101-658AD605B09A} SolutionGuid = {AA37ED9F-F8D6-468E-A101-658AD605B09A}

View File

@@ -4,4 +4,12 @@
<add key="nuget" value="https://api.nuget.org/v3/index.json" /> <add key="nuget" value="https://api.nuget.org/v3/index.json" />
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" /> <add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
</packageSources> </packageSources>
<packageSourceMapping>
<packageSource key="nuget">
<package pattern="*" />
</packageSource>
<packageSource key="dotnet-eng">
<package pattern="Microsoft.DotNet.RemoteExecutor" />
</packageSource>
</packageSourceMapping>
</configuration> </configuration>