AvatarScaleMod

This commit is contained in:
NotAKidoS 2023-04-27 05:22:53 -05:00
parent c8cf2afd87
commit 214b05ff8e
7 changed files with 250 additions and 90 deletions

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk"/>

View file

@ -0,0 +1,38 @@
using ABI_RC.Core.Player;
using HarmonyLib;
namespace NAK.AvatarScaleMod.HarmonyPatches;
class PlayerSetupPatches
{
[HarmonyPostfix]
[HarmonyPatch(typeof(PlayerSetup), nameof(PlayerSetup.SetupAvatarGeneral))]
static void Postfix_PlayerSetup_SetupAvatarGeneral(ref PlayerSetup __instance, ref float ____initialAvatarHeight)
{
if (!AvatarScaleMod.EntryEnabled.Value) return;
if (AvatarScaleMod.HiddenAvatarScale.Value > 0)
{
__instance.changeAnimatorParam(AvatarScaleMod.ParameterName, AvatarScaleMod.HiddenAvatarScale.Value);
return;
}
// User has cleared MelonPrefs, store a default value.
AvatarScaleMod.HiddenAvatarScale.Value = CalculateParameterValue(____initialAvatarHeight);
}
[HarmonyPrefix]
[HarmonyPatch(typeof(PlayerSetup), nameof(PlayerSetup.ClearAvatar))]
static void Prefix_PlayerSetup_ClearAvatar(ref float ____avatarHeight)
{
if (!AvatarScaleMod.EntryEnabled.Value) return;
AvatarScaleMod.HiddenAvatarScale.Value = CalculateParameterValue(____avatarHeight);
}
public static float CalculateParameterValue(float lastAvatarHeight)
{
float t = (lastAvatarHeight - AvatarScaleMod.MinimumHeight) / (AvatarScaleMod.MaximumHeight - AvatarScaleMod.MinimumHeight);
return t;
}
}

37
AvatarScale/Main.cs Normal file
View file

@ -0,0 +1,37 @@
using MelonLoader;
namespace NAK.AvatarScaleMod;
public class AvatarScaleMod : MelonMod
{
internal const string ParameterName = "AvatarScale";
internal const float MinimumHeight = 0.25f;
internal const float MaximumHeight = 2f;
public static readonly MelonPreferences_Category Category =
MelonPreferences.CreateCategory(nameof(AvatarScaleMod));
public static readonly MelonPreferences_Entry<bool> EntryEnabled =
Category.CreateEntry("Enabled", true, description: "Should there be persistant avatar scaling? This only works properly on supported avatars.");
public static readonly MelonPreferences_Entry<float> HiddenAvatarScale =
Category.CreateEntry("Last Avatar Scale", -1f, is_hidden: true);
public override void OnInitializeMelon()
{
ApplyPatches(typeof(HarmonyPatches.PlayerSetupPatches));
}
void ApplyPatches(Type type)
{
try
{
HarmonyInstance.PatchAll(type);
}
catch (Exception e)
{
LoggerInstance.Msg($"Failed while patching {type.Name}!");
LoggerInstance.Error(e);
}
}
}

View file

@ -0,0 +1,29 @@
using MelonLoader;
using NAK.AvatarScaleMod.Properties;
using System.Reflection;
[assembly: AssemblyVersion(AssemblyInfoParams.Version)]
[assembly: AssemblyFileVersion(AssemblyInfoParams.Version)]
[assembly: AssemblyInformationalVersion(AssemblyInfoParams.Version)]
[assembly: AssemblyTitle(nameof(NAK.AvatarScaleMod))]
[assembly: AssemblyCompany(AssemblyInfoParams.Author)]
[assembly: AssemblyProduct(nameof(NAK.AvatarScaleMod))]
[assembly: MelonInfo(
typeof(NAK.AvatarScaleMod.AvatarScaleMod),
nameof(NAK.AvatarScaleMod),
AssemblyInfoParams.Version,
AssemblyInfoParams.Author,
downloadLink: "https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/AvatarScale"
)]
[assembly: MelonGame("Alpha Blend Interactive", "ChilloutVR")]
[assembly: MelonPlatform(MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonPlatformDomain(MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
namespace NAK.AvatarScaleMod.Properties;
internal static class AssemblyInfoParams
{
public const string Version = "1.0.0";
public const string Author = "NotAKidoS";
}

16
AvatarScale/README.md Normal file
View file

@ -0,0 +1,16 @@
# AvatarScaleMod
Makes "AvatarScale" parameter persistant across avatars.
Combined with AvatarScaleTool, this allows for crossa consistant scale when switching between avatars.
---
Here is the block of text where I tell you this mod is not affiliated or endorsed by ABI.
https://documentation.abinteractive.net/official/legal/tos/#7-modding-our-games
> This mod is an independent creation and is not affiliated with, supported by or approved by Alpha Blend Interactive.
> Use of this mod is done so at the user's own risk and the creator cannot be held responsible for any issues arising from its use.
> To the best of my knowledge, I have adhered to the Modding Guidelines established by Alpha Blend Interactive.

23
AvatarScale/format.json Normal file
View file

@ -0,0 +1,23 @@
{
"_id": 126,
"name": "AvatarScale",
"modversion": "1.0.5",
"gameversion": "2022r170",
"loaderversion": "0.5.7",
"modtype": "Mod",
"author": "NotAKidoS",
"description": "Fixes two issues with the Avatar Advanced Settings buffers when loading remote avatars. In simple terms, it means 'fewer wardrobe malfunctions'.\n\nEmpty buffer (all 0/false) will no longer be applied on load.\nReceived AAS data is ignored until the wearer has loaded into the expected avatar.\n(The avatar will sit in its default state until the wearer has loaded and started syncing correct AAS)\nAAS will no longer be sent while switching avatar.\n\nPlease view the GitHub README for links to relevant feedback posts.",
"searchtags": [
"aas",
"sync",
"naked",
"buffer"
],
"requirements": [
"None"
],
"downloadlink": "https://github.com/NotAKidOnSteam/NAK_CVR_Mods/releases/download/r3/AvatarScale.dll",
"sourcelink": "https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/AvatarScale/",
"changelog": "",
"embedcolor": "9b59b6"
}

View file

@ -1,46 +1,51 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrackedControllerFix", "TrackedControllerFix\TrackedControllerFix.csproj", "{883F7EC3-9A1E-4EBA-9A51-E2E7882DC5D4}" # Visual Studio Version 17
VisualStudioVersion = 17.2.32630.192
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TrackedControllerFix", "TrackedControllerFix\TrackedControllerFix.csproj", "{883F7EC3-9A1E-4EBA-9A51-E2E7882DC5D4}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AASBufferFix", "AASBufferFix\AASBufferFix.csproj", "{DBC8A547-F07B-40DB-8745-D79042C6C1A1}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AASBufferFix", "AASBufferFix\AASBufferFix.csproj", "{DBC8A547-F07B-40DB-8745-D79042C6C1A1}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BadAnimatorFix", "BadAnimatorFix\BadAnimatorFix.csproj", "{E56C36DE-5F8D-41CC-A801-376D27D22EF5}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BadAnimatorFix", "BadAnimatorFix\BadAnimatorFix.csproj", "{E56C36DE-5F8D-41CC-A801-376D27D22EF5}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blackout", "Blackout\Blackout.csproj", "{24BE113B-5D9F-4BFA-A883-CAD8279304A1}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blackout", "Blackout\Blackout.csproj", "{24BE113B-5D9F-4BFA-A883-CAD8279304A1}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatBoxExtensions", "ChatBoxExtensions\ChatBoxExtensions.csproj", "{E3709319-8EDB-42C7-8A99-0F1FDF5AC312}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ChatBoxExtensions", "ChatBoxExtensions\ChatBoxExtensions.csproj", "{E3709319-8EDB-42C7-8A99-0F1FDF5AC312}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClearHudNotifications", "ClearHudNotifications\ClearHudNotifications.csproj", "{F74A59F9-7AE9-46AB-81B9-B50BDA4C30F0}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClearHudNotifications", "ClearHudNotifications\ClearHudNotifications.csproj", "{F74A59F9-7AE9-46AB-81B9-B50BDA4C30F0}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CVRGizmos", "CVRGizmos\CVRGizmos.csproj", "{CF9BC79E-4FB6-429A-8C19-DF31F040BD4A}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CVRGizmos", "CVRGizmos\CVRGizmos.csproj", "{CF9BC79E-4FB6-429A-8C19-DF31F040BD4A}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesktopVRIK", "DesktopVRIK\DesktopVRIK.csproj", "{CD33AB69-F9A4-4F32-B69A-473131F6393B}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopVRIK", "DesktopVRIK\DesktopVRIK.csproj", "{CD33AB69-F9A4-4F32-B69A-473131F6393B}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesktopVRSwitch", "DesktopVRSwitch\DesktopVRSwitch.csproj", "{30F56FE1-1654-4213-A51C-4C0278FB43A6}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopVRSwitch", "DesktopVRSwitch\DesktopVRSwitch.csproj", "{30F56FE1-1654-4213-A51C-4C0278FB43A6}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FuckMetrics", "FuckMetrics\FuckMetrics.csproj", "{55E805A5-404C-4BB9-9AF1-A432443B1424}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FuckMetrics", "FuckMetrics\FuckMetrics.csproj", "{55E805A5-404C-4BB9-9AF1-A432443B1424}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FuckToes", "FuckToes\FuckToes.csproj", "{79B2A7C4-348D-4A8E-94D1-BA22FDD5FEED}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FuckToes", "FuckToes\FuckToes.csproj", "{79B2A7C4-348D-4A8E-94D1-BA22FDD5FEED}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GestureLock", "GestureLock\GestureLock.csproj", "{45A65AEB-4BFC-4E47-B181-BBB43BD81283}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GestureLock", "GestureLock\GestureLock.csproj", "{45A65AEB-4BFC-4E47-B181-BBB43BD81283}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IKFixes", "IKFixes\IKFixes.csproj", "{95D40C1C-6A7D-4AB3-8893-3E7B8375D01D}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKFixes", "IKFixes\IKFixes.csproj", "{95D40C1C-6A7D-4AB3-8893-3E7B8375D01D}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JumpPatch", "JumpPatch\JumpPatch.csproj", "{06AA6DE3-967A-4F1E-83B1-6DDA1524A638}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JumpPatch", "JumpPatch\JumpPatch.csproj", "{06AA6DE3-967A-4F1E-83B1-6DDA1524A638}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MenuScalePatch", "MenuScalePatch\MenuScalePatch.csproj", "{A089D5AA-B539-423C-9331-A30E8147EEF5}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MenuScalePatch", "MenuScalePatch\MenuScalePatch.csproj", "{A089D5AA-B539-423C-9331-A30E8147EEF5}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomComponents", "NAK.CustomComponents\CustomComponents.csproj", "{E43DB288-C6CF-469C-A250-17029A14770E}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CustomComponents", "NAK.CustomComponents\CustomComponents.csproj", "{E43DB288-C6CF-469C-A250-17029A14770E}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PathCamDisabler", "PathCamDisabler\PathCamDisabler.csproj", "{98169FD2-5CEB-46D1-A320-D7E06F82C9E0}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PathCamDisabler", "PathCamDisabler\PathCamDisabler.csproj", "{98169FD2-5CEB-46D1-A320-D7E06F82C9E0}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PickupPushPull", "PickupPushPull\PickupPushPull.csproj", "{1B3245A6-1F6D-4C1F-AE53-8781A26A1AC7}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PickupPushPull", "PickupPushPull\PickupPushPull.csproj", "{1B3245A6-1F6D-4C1F-AE53-8781A26A1AC7}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortableCameraAdditions", "PortableCameraAdditions\PortableCameraAdditions.csproj", "{C4DAFE9D-C79B-4417-9B7D-B7327999DA4C}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PortableCameraAdditions", "PortableCameraAdditions\PortableCameraAdditions.csproj", "{C4DAFE9D-C79B-4417-9B7D-B7327999DA4C}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PropUndoButton", "PropUndoButton\PropUndoButton.csproj", "{FBFDB717-F81E-4C06-ACF9-A0F3FFDCDE00}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PropUndoButton", "PropUndoButton\PropUndoButton.csproj", "{FBFDB717-F81E-4C06-ACF9-A0F3FFDCDE00}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThirdPerson", "ThirdPerson\ThirdPerson.csproj", "{675CEC0E-3E8A-4970-98EA-9B79277A7252}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThirdPerson", "ThirdPerson\ThirdPerson.csproj", "{675CEC0E-3E8A-4970-98EA-9B79277A7252}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvatarScaleMod", "AvatarScale\AvatarScaleMod.csproj", "{A6DF0D98-428C-4FE2-BA7F-756312122B1E}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -48,89 +53,99 @@ Global
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{06AA6DE3-967A-4F1E-83B1-6DDA1524A638}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{06AA6DE3-967A-4F1E-83B1-6DDA1524A638}.Release|Any CPU.ActiveCfg = Release|Any CPU
{06AA6DE3-967A-4F1E-83B1-6DDA1524A638}.Debug|Any CPU.Build.0 = Debug|Any CPU
{06AA6DE3-967A-4F1E-83B1-6DDA1524A638}.Release|Any CPU.Build.0 = Release|Any CPU
{1B3245A6-1F6D-4C1F-AE53-8781A26A1AC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1B3245A6-1F6D-4C1F-AE53-8781A26A1AC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1B3245A6-1F6D-4C1F-AE53-8781A26A1AC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1B3245A6-1F6D-4C1F-AE53-8781A26A1AC7}.Release|Any CPU.Build.0 = Release|Any CPU
{24BE113B-5D9F-4BFA-A883-CAD8279304A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{24BE113B-5D9F-4BFA-A883-CAD8279304A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{24BE113B-5D9F-4BFA-A883-CAD8279304A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{24BE113B-5D9F-4BFA-A883-CAD8279304A1}.Release|Any CPU.Build.0 = Release|Any CPU
{30F56FE1-1654-4213-A51C-4C0278FB43A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{30F56FE1-1654-4213-A51C-4C0278FB43A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{30F56FE1-1654-4213-A51C-4C0278FB43A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{30F56FE1-1654-4213-A51C-4C0278FB43A6}.Release|Any CPU.Build.0 = Release|Any CPU
{45A65AEB-4BFC-4E47-B181-BBB43BD81283}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{45A65AEB-4BFC-4E47-B181-BBB43BD81283}.Release|Any CPU.ActiveCfg = Release|Any CPU
{45A65AEB-4BFC-4E47-B181-BBB43BD81283}.Debug|Any CPU.Build.0 = Debug|Any CPU
{45A65AEB-4BFC-4E47-B181-BBB43BD81283}.Release|Any CPU.Build.0 = Release|Any CPU
{55E805A5-404C-4BB9-9AF1-A432443B1424}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{55E805A5-404C-4BB9-9AF1-A432443B1424}.Release|Any CPU.ActiveCfg = Release|Any CPU
{55E805A5-404C-4BB9-9AF1-A432443B1424}.Debug|Any CPU.Build.0 = Debug|Any CPU
{55E805A5-404C-4BB9-9AF1-A432443B1424}.Release|Any CPU.Build.0 = Release|Any CPU
{675CEC0E-3E8A-4970-98EA-9B79277A7252}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{675CEC0E-3E8A-4970-98EA-9B79277A7252}.Release|Any CPU.ActiveCfg = Release|Any CPU
{675CEC0E-3E8A-4970-98EA-9B79277A7252}.Debug|Any CPU.Build.0 = Debug|Any CPU
{675CEC0E-3E8A-4970-98EA-9B79277A7252}.Release|Any CPU.Build.0 = Release|Any CPU
{79B2A7C4-348D-4A8E-94D1-BA22FDD5FEED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{79B2A7C4-348D-4A8E-94D1-BA22FDD5FEED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{79B2A7C4-348D-4A8E-94D1-BA22FDD5FEED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{79B2A7C4-348D-4A8E-94D1-BA22FDD5FEED}.Release|Any CPU.Build.0 = Release|Any CPU
{883F7EC3-9A1E-4EBA-9A51-E2E7882DC5D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {883F7EC3-9A1E-4EBA-9A51-E2E7882DC5D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{883F7EC3-9A1E-4EBA-9A51-E2E7882DC5D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{883F7EC3-9A1E-4EBA-9A51-E2E7882DC5D4}.Debug|Any CPU.Build.0 = Debug|Any CPU {883F7EC3-9A1E-4EBA-9A51-E2E7882DC5D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{883F7EC3-9A1E-4EBA-9A51-E2E7882DC5D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{883F7EC3-9A1E-4EBA-9A51-E2E7882DC5D4}.Release|Any CPU.Build.0 = Release|Any CPU {883F7EC3-9A1E-4EBA-9A51-E2E7882DC5D4}.Release|Any CPU.Build.0 = Release|Any CPU
{95D40C1C-6A7D-4AB3-8893-3E7B8375D01D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{95D40C1C-6A7D-4AB3-8893-3E7B8375D01D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{95D40C1C-6A7D-4AB3-8893-3E7B8375D01D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{95D40C1C-6A7D-4AB3-8893-3E7B8375D01D}.Release|Any CPU.Build.0 = Release|Any CPU
{98169FD2-5CEB-46D1-A320-D7E06F82C9E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{98169FD2-5CEB-46D1-A320-D7E06F82C9E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{98169FD2-5CEB-46D1-A320-D7E06F82C9E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{98169FD2-5CEB-46D1-A320-D7E06F82C9E0}.Release|Any CPU.Build.0 = Release|Any CPU
{A089D5AA-B539-423C-9331-A30E8147EEF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A089D5AA-B539-423C-9331-A30E8147EEF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A089D5AA-B539-423C-9331-A30E8147EEF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A089D5AA-B539-423C-9331-A30E8147EEF5}.Release|Any CPU.Build.0 = Release|Any CPU
{C4DAFE9D-C79B-4417-9B7D-B7327999DA4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C4DAFE9D-C79B-4417-9B7D-B7327999DA4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C4DAFE9D-C79B-4417-9B7D-B7327999DA4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C4DAFE9D-C79B-4417-9B7D-B7327999DA4C}.Release|Any CPU.Build.0 = Release|Any CPU
{CD33AB69-F9A4-4F32-B69A-473131F6393B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CD33AB69-F9A4-4F32-B69A-473131F6393B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CD33AB69-F9A4-4F32-B69A-473131F6393B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CD33AB69-F9A4-4F32-B69A-473131F6393B}.Release|Any CPU.Build.0 = Release|Any CPU
{CF9BC79E-4FB6-429A-8C19-DF31F040BD4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF9BC79E-4FB6-429A-8C19-DF31F040BD4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF9BC79E-4FB6-429A-8C19-DF31F040BD4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF9BC79E-4FB6-429A-8C19-DF31F040BD4A}.Release|Any CPU.Build.0 = Release|Any CPU
{DBC8A547-F07B-40DB-8745-D79042C6C1A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DBC8A547-F07B-40DB-8745-D79042C6C1A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DBC8A547-F07B-40DB-8745-D79042C6C1A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DBC8A547-F07B-40DB-8745-D79042C6C1A1}.Debug|Any CPU.Build.0 = Debug|Any CPU {DBC8A547-F07B-40DB-8745-D79042C6C1A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DBC8A547-F07B-40DB-8745-D79042C6C1A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DBC8A547-F07B-40DB-8745-D79042C6C1A1}.Release|Any CPU.Build.0 = Release|Any CPU {DBC8A547-F07B-40DB-8745-D79042C6C1A1}.Release|Any CPU.Build.0 = Release|Any CPU
{E3709319-8EDB-42C7-8A99-0F1FDF5AC312}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E3709319-8EDB-42C7-8A99-0F1FDF5AC312}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E3709319-8EDB-42C7-8A99-0F1FDF5AC312}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E3709319-8EDB-42C7-8A99-0F1FDF5AC312}.Release|Any CPU.Build.0 = Release|Any CPU
{E43DB288-C6CF-469C-A250-17029A14770E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E43DB288-C6CF-469C-A250-17029A14770E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E43DB288-C6CF-469C-A250-17029A14770E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E43DB288-C6CF-469C-A250-17029A14770E}.Release|Any CPU.Build.0 = Release|Any CPU
{E56C36DE-5F8D-41CC-A801-376D27D22EF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E56C36DE-5F8D-41CC-A801-376D27D22EF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E56C36DE-5F8D-41CC-A801-376D27D22EF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E56C36DE-5F8D-41CC-A801-376D27D22EF5}.Debug|Any CPU.Build.0 = Debug|Any CPU {E56C36DE-5F8D-41CC-A801-376D27D22EF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E56C36DE-5F8D-41CC-A801-376D27D22EF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E56C36DE-5F8D-41CC-A801-376D27D22EF5}.Release|Any CPU.Build.0 = Release|Any CPU {E56C36DE-5F8D-41CC-A801-376D27D22EF5}.Release|Any CPU.Build.0 = Release|Any CPU
{24BE113B-5D9F-4BFA-A883-CAD8279304A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{24BE113B-5D9F-4BFA-A883-CAD8279304A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{24BE113B-5D9F-4BFA-A883-CAD8279304A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{24BE113B-5D9F-4BFA-A883-CAD8279304A1}.Release|Any CPU.Build.0 = Release|Any CPU
{E3709319-8EDB-42C7-8A99-0F1FDF5AC312}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E3709319-8EDB-42C7-8A99-0F1FDF5AC312}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E3709319-8EDB-42C7-8A99-0F1FDF5AC312}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E3709319-8EDB-42C7-8A99-0F1FDF5AC312}.Release|Any CPU.Build.0 = Release|Any CPU
{F74A59F9-7AE9-46AB-81B9-B50BDA4C30F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F74A59F9-7AE9-46AB-81B9-B50BDA4C30F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F74A59F9-7AE9-46AB-81B9-B50BDA4C30F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F74A59F9-7AE9-46AB-81B9-B50BDA4C30F0}.Debug|Any CPU.Build.0 = Debug|Any CPU {F74A59F9-7AE9-46AB-81B9-B50BDA4C30F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F74A59F9-7AE9-46AB-81B9-B50BDA4C30F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F74A59F9-7AE9-46AB-81B9-B50BDA4C30F0}.Release|Any CPU.Build.0 = Release|Any CPU {F74A59F9-7AE9-46AB-81B9-B50BDA4C30F0}.Release|Any CPU.Build.0 = Release|Any CPU
{CF9BC79E-4FB6-429A-8C19-DF31F040BD4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF9BC79E-4FB6-429A-8C19-DF31F040BD4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF9BC79E-4FB6-429A-8C19-DF31F040BD4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF9BC79E-4FB6-429A-8C19-DF31F040BD4A}.Release|Any CPU.Build.0 = Release|Any CPU
{CD33AB69-F9A4-4F32-B69A-473131F6393B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CD33AB69-F9A4-4F32-B69A-473131F6393B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CD33AB69-F9A4-4F32-B69A-473131F6393B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CD33AB69-F9A4-4F32-B69A-473131F6393B}.Release|Any CPU.Build.0 = Release|Any CPU
{30F56FE1-1654-4213-A51C-4C0278FB43A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{30F56FE1-1654-4213-A51C-4C0278FB43A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{30F56FE1-1654-4213-A51C-4C0278FB43A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{30F56FE1-1654-4213-A51C-4C0278FB43A6}.Release|Any CPU.Build.0 = Release|Any CPU
{55E805A5-404C-4BB9-9AF1-A432443B1424}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{55E805A5-404C-4BB9-9AF1-A432443B1424}.Debug|Any CPU.Build.0 = Debug|Any CPU
{55E805A5-404C-4BB9-9AF1-A432443B1424}.Release|Any CPU.ActiveCfg = Release|Any CPU
{55E805A5-404C-4BB9-9AF1-A432443B1424}.Release|Any CPU.Build.0 = Release|Any CPU
{79B2A7C4-348D-4A8E-94D1-BA22FDD5FEED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{79B2A7C4-348D-4A8E-94D1-BA22FDD5FEED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{79B2A7C4-348D-4A8E-94D1-BA22FDD5FEED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{79B2A7C4-348D-4A8E-94D1-BA22FDD5FEED}.Release|Any CPU.Build.0 = Release|Any CPU
{45A65AEB-4BFC-4E47-B181-BBB43BD81283}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{45A65AEB-4BFC-4E47-B181-BBB43BD81283}.Debug|Any CPU.Build.0 = Debug|Any CPU
{45A65AEB-4BFC-4E47-B181-BBB43BD81283}.Release|Any CPU.ActiveCfg = Release|Any CPU
{45A65AEB-4BFC-4E47-B181-BBB43BD81283}.Release|Any CPU.Build.0 = Release|Any CPU
{95D40C1C-6A7D-4AB3-8893-3E7B8375D01D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{95D40C1C-6A7D-4AB3-8893-3E7B8375D01D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{95D40C1C-6A7D-4AB3-8893-3E7B8375D01D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{95D40C1C-6A7D-4AB3-8893-3E7B8375D01D}.Release|Any CPU.Build.0 = Release|Any CPU
{06AA6DE3-967A-4F1E-83B1-6DDA1524A638}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{06AA6DE3-967A-4F1E-83B1-6DDA1524A638}.Debug|Any CPU.Build.0 = Debug|Any CPU
{06AA6DE3-967A-4F1E-83B1-6DDA1524A638}.Release|Any CPU.ActiveCfg = Release|Any CPU
{06AA6DE3-967A-4F1E-83B1-6DDA1524A638}.Release|Any CPU.Build.0 = Release|Any CPU
{A089D5AA-B539-423C-9331-A30E8147EEF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A089D5AA-B539-423C-9331-A30E8147EEF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A089D5AA-B539-423C-9331-A30E8147EEF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A089D5AA-B539-423C-9331-A30E8147EEF5}.Release|Any CPU.Build.0 = Release|Any CPU
{E43DB288-C6CF-469C-A250-17029A14770E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E43DB288-C6CF-469C-A250-17029A14770E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E43DB288-C6CF-469C-A250-17029A14770E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E43DB288-C6CF-469C-A250-17029A14770E}.Release|Any CPU.Build.0 = Release|Any CPU
{98169FD2-5CEB-46D1-A320-D7E06F82C9E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{98169FD2-5CEB-46D1-A320-D7E06F82C9E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{98169FD2-5CEB-46D1-A320-D7E06F82C9E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{98169FD2-5CEB-46D1-A320-D7E06F82C9E0}.Release|Any CPU.Build.0 = Release|Any CPU
{1B3245A6-1F6D-4C1F-AE53-8781A26A1AC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1B3245A6-1F6D-4C1F-AE53-8781A26A1AC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1B3245A6-1F6D-4C1F-AE53-8781A26A1AC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1B3245A6-1F6D-4C1F-AE53-8781A26A1AC7}.Release|Any CPU.Build.0 = Release|Any CPU
{C4DAFE9D-C79B-4417-9B7D-B7327999DA4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C4DAFE9D-C79B-4417-9B7D-B7327999DA4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C4DAFE9D-C79B-4417-9B7D-B7327999DA4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C4DAFE9D-C79B-4417-9B7D-B7327999DA4C}.Release|Any CPU.Build.0 = Release|Any CPU
{FBFDB717-F81E-4C06-ACF9-A0F3FFDCDE00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FBFDB717-F81E-4C06-ACF9-A0F3FFDCDE00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FBFDB717-F81E-4C06-ACF9-A0F3FFDCDE00}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FBFDB717-F81E-4C06-ACF9-A0F3FFDCDE00}.Debug|Any CPU.Build.0 = Debug|Any CPU {FBFDB717-F81E-4C06-ACF9-A0F3FFDCDE00}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FBFDB717-F81E-4C06-ACF9-A0F3FFDCDE00}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FBFDB717-F81E-4C06-ACF9-A0F3FFDCDE00}.Release|Any CPU.Build.0 = Release|Any CPU {FBFDB717-F81E-4C06-ACF9-A0F3FFDCDE00}.Release|Any CPU.Build.0 = Release|Any CPU
{675CEC0E-3E8A-4970-98EA-9B79277A7252}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{675CEC0E-3E8A-4970-98EA-9B79277A7252}.Debug|Any CPU.Build.0 = Debug|Any CPU
{675CEC0E-3E8A-4970-98EA-9B79277A7252}.Release|Any CPU.ActiveCfg = Release|Any CPU
{675CEC0E-3E8A-4970-98EA-9B79277A7252}.Release|Any CPU.Build.0 = Release|Any CPU
{A6DF0D98-428C-4FE2-BA7F-756312122B1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A6DF0D98-428C-4FE2-BA7F-756312122B1E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A6DF0D98-428C-4FE2-BA7F-756312122B1E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A6DF0D98-428C-4FE2-BA7F-756312122B1E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CD7DECEC-F4A0-4EEF-978B-72748414D52A}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal