mirror of
https://github.com/goatcorp/Dalamud.git
synced 2026-02-19 06:17:43 +01:00
This is fucking dog shit
This commit is contained in:
parent
52daf6ada0
commit
54bf6099bf
7 changed files with 281 additions and 268 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.IO.Pipes;
|
using System.IO.Pipes;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
|
@ -18,17 +19,18 @@ namespace Dalamud.Bootstrap
|
||||||
m_options = options;
|
m_options = options;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Test()
|
public void Launch(string exePath, IDictionary<string, string> arguments)
|
||||||
{
|
{
|
||||||
//
|
var options = new GameProcessCreationOptions
|
||||||
}
|
{
|
||||||
|
ImagePath = exePath,
|
||||||
|
Arguments = arguments,
|
||||||
|
CreateSuspended = true
|
||||||
|
};
|
||||||
|
|
||||||
public void Launch(string exePath, string? commandLine)
|
using var process = GameProcess.Create(options);
|
||||||
{
|
|
||||||
commandLine = commandLine ?? "";
|
|
||||||
|
|
||||||
|
// TODO: Inject(process);
|
||||||
//throw new NotImplementedException("TODO");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -62,14 +64,9 @@ namespace Dalamud.Bootstrap
|
||||||
using var process = GameProcess.Open(pid);
|
using var process = GameProcess.Open(pid);
|
||||||
|
|
||||||
var exePath = process.GetImageFilePath();
|
var exePath = process.GetImageFilePath();
|
||||||
|
|
||||||
var argument = process.GetGameArguments();
|
var argument = process.GetGameArguments();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var encryptedArgument = EncryptArgument(argument.ToString());
|
var encryptedArgument = EncryptArgument(argument.ToString());
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ using Dalamud.Bootstrap.OS.Windows.Raw;
|
||||||
using Dalamud.Bootstrap.SqexArg;
|
using Dalamud.Bootstrap.SqexArg;
|
||||||
using Microsoft.Win32.SafeHandles;
|
using Microsoft.Win32.SafeHandles;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
|
|
@ -181,6 +183,11 @@ namespace Dalamud.Bootstrap
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static uint CreateCommandLineKey()
|
||||||
|
{
|
||||||
|
return (uint)(Environment.TickCount & 0xFFFF_0000);
|
||||||
|
}
|
||||||
|
|
||||||
public static GameProcess Create(GameProcessCreationOptions options)
|
public static GameProcess Create(GameProcessCreationOptions options)
|
||||||
{
|
{
|
||||||
unsafe
|
unsafe
|
||||||
|
|
@ -188,9 +195,17 @@ namespace Dalamud.Bootstrap
|
||||||
SECURITY_ATTRIBUTES processAttr, threadAttr;
|
SECURITY_ATTRIBUTES processAttr, threadAttr;
|
||||||
STARTUPINFOW startupInfo = default;
|
STARTUPINFOW startupInfo = default;
|
||||||
PROCESS_INFORMATION processInfo = default;
|
PROCESS_INFORMATION processInfo = default;
|
||||||
uint creationFlag;
|
uint creationFlag = default;
|
||||||
|
|
||||||
BuildCommandLine(options);
|
var key = CreateCommandLineKey();
|
||||||
|
var commandLine = BuildCommandLine(options.Arguments, key);
|
||||||
|
var currentDirectory = Path.Combine(Directory.GetParent(Path.GetDirectoryName(options.ImagePath)).FullName, "boot"); // this is fucked
|
||||||
|
var environments = BuildEnvironments(options.Environments);
|
||||||
|
|
||||||
|
if (options.CreateSuspended)
|
||||||
|
{
|
||||||
|
creationFlag |= (uint)PROCESS_CREATION_FLAGS.CREATE_SUSPENDED;
|
||||||
|
}
|
||||||
|
|
||||||
if (!Kernel32.CreateProcessW(
|
if (!Kernel32.CreateProcessW(
|
||||||
options.ImagePath,
|
options.ImagePath,
|
||||||
|
|
@ -207,10 +222,23 @@ namespace Dalamud.Bootstrap
|
||||||
{
|
{
|
||||||
ProcessException.ThrowLastOsError();
|
ProcessException.ThrowLastOsError();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
throw new NotImplementedException();
|
Kernel32.CloseHandle(//////////////////// fucking thread )
|
||||||
|
|
||||||
|
return new GameProcess(processInfo.hProcess);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string BuildCommandLine(IDictionary<string, string> arguments, uint key)
|
||||||
|
{
|
||||||
|
var builder = new SqexArgBuilder(arguments);
|
||||||
|
|
||||||
|
return builder.Build(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static byte[] BuildEnvironments(IDictionary<string, string>? environments)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -290,7 +318,6 @@ namespace Dalamud.Bootstrap
|
||||||
ReadMemoryExact(address, buffer);
|
ReadMemoryExact(address, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private IntPtr GetPebAddress()
|
private IntPtr GetPebAddress()
|
||||||
{
|
{
|
||||||
unsafe
|
unsafe
|
||||||
|
|
@ -428,34 +455,6 @@ namespace Dalamud.Bootstrap
|
||||||
return createdTick & 0xFFFF_0000;
|
return createdTick & 0xFFFF_0000;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
public uint Id => Kernel32.GetProcessId(m_handle);
|
||||||
/// Reads command-line arguments from the game and decrypts them if necessary.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>
|
|
||||||
/// Command-line arguments that looks like this:
|
|
||||||
/// /DEV.TestSID =ABCD /UserPath =C:\Examples
|
|
||||||
/// </returns>
|
|
||||||
public ArgumentBuilder GetGameArguments()
|
|
||||||
{
|
|
||||||
var processArguments = GetProcessArguments();
|
|
||||||
|
|
||||||
// arg[0] is a path to exe(normally), arg[1] is actual stuff.
|
|
||||||
if (processArguments.Length < 2)
|
|
||||||
{
|
|
||||||
throw new ProcessException($"There's only {processArguments.Length} process arguments. It must have at least 2 arguments.");
|
|
||||||
}
|
|
||||||
|
|
||||||
// We're interested in argument that contains session id
|
|
||||||
var argument = processArguments[1];
|
|
||||||
|
|
||||||
// If it's encrypted, we need to decrypt it first
|
|
||||||
if (EncryptedArgument.TryParse(argument, out var encryptedArgument))
|
|
||||||
{
|
|
||||||
var key = GetArgumentEncryptionKey();
|
|
||||||
argument = encryptedArgument.Decrypt(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
return argument;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ namespace Dalamud.Bootstrap
|
||||||
{
|
{
|
||||||
public string ImagePath { get; set; } = null!;
|
public string ImagePath { get; set; } = null!;
|
||||||
|
|
||||||
public IList<string>? Arguments { get; set; }
|
public IDictionary<string, string> Arguments { get; set; }
|
||||||
|
|
||||||
public IDictionary<string, string>? Environments { get; set; }
|
public IDictionary<string, string>? Environments { get; set; }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,18 +3,18 @@ using System.Text;
|
||||||
|
|
||||||
namespace Dalamud.Bootstrap.SqexArg
|
namespace Dalamud.Bootstrap.SqexArg
|
||||||
{
|
{
|
||||||
public sealed class ArgumentBuilder
|
public sealed class SqexArgBuilder
|
||||||
{
|
{
|
||||||
private readonly Dictionary<string, string> m_dict;
|
private readonly IDictionary<string, string> m_dict;
|
||||||
|
|
||||||
public ArgumentBuilder()
|
public SqexArgBuilder()
|
||||||
{
|
{
|
||||||
m_dict = new Dictionary<string, string>();
|
m_dict = new Dictionary<string, string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArgumentBuilder(IEnumerable<KeyValuePair<string, string>> collection)
|
public SqexArgBuilder(IDictionary<string, string> collection)
|
||||||
{
|
{
|
||||||
m_dict = new Dictionary<string, string>(collection);
|
m_dict = collection;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -22,19 +22,21 @@ namespace Dalamud.Bootstrap.SqexArg
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="argument"></param>
|
/// <param name="argument"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static ArgumentBuilder Parse(string argument)
|
public static SqexArgBuilder Parse(string argument)
|
||||||
{
|
{
|
||||||
return new ArgumentBuilder(ArgumentParser.Parse(argument));
|
var arguments = new Dictionary<string, string>(SqexArgumentParser.Parse(argument)); // uhhh
|
||||||
|
|
||||||
|
return new SqexArgBuilder(arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArgumentBuilder Add(string key, string value)
|
public SqexArgBuilder Add(string key, string value)
|
||||||
{
|
{
|
||||||
m_dict.Add(key, value);
|
m_dict.Add(key, value);
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArgumentBuilder Clear()
|
public SqexArgBuilder Clear()
|
||||||
{
|
{
|
||||||
m_dict.Clear();
|
m_dict.Clear();
|
||||||
|
|
||||||
|
|
@ -43,9 +45,9 @@ namespace Dalamud.Bootstrap.SqexArg
|
||||||
|
|
||||||
public bool ContainsKey(string key) => m_dict.ContainsKey(key);
|
public bool ContainsKey(string key) => m_dict.ContainsKey(key);
|
||||||
|
|
||||||
public bool ContainsValue(string value) => m_dict.ContainsValue(value);
|
//public bool ContainsValue(string value) => m_dict.ContainsValue(value);
|
||||||
|
|
||||||
public ArgumentBuilder Remove(string key)
|
public SqexArgBuilder Remove(string key)
|
||||||
{
|
{
|
||||||
m_dict.Remove(key);
|
m_dict.Remove(key);
|
||||||
|
|
||||||
|
|
@ -54,17 +56,7 @@ namespace Dalamud.Bootstrap.SqexArg
|
||||||
|
|
||||||
public bool TryRemove(string key) => m_dict.Remove(key);
|
public bool TryRemove(string key) => m_dict.Remove(key);
|
||||||
|
|
||||||
private static void Write(StringBuilder buffer, string key, string value)
|
|
||||||
{
|
|
||||||
var escapedKey = EscapeValue(key);
|
|
||||||
var escapedvalue = EscapeValue(value);
|
|
||||||
|
|
||||||
// TODO: (from chat)
|
|
||||||
// This line, the = in your version has a space before it
|
|
||||||
// If you're sending the arguments in plaintext, game doesn't like the space there
|
|
||||||
// (But I think it needs to be there in crypted args)
|
|
||||||
buffer.Append($" /{escapedKey} ={escapedvalue}"); // TODO: thanks SE
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string EscapeValue(string value)
|
private static string EscapeValue(string value)
|
||||||
{
|
{
|
||||||
|
|
@ -72,16 +64,37 @@ namespace Dalamud.Bootstrap.SqexArg
|
||||||
return value.Replace(" ", " ");
|
return value.Replace(" ", " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
private string BuildRawString()
|
||||||
{
|
{
|
||||||
|
// This is not exposed because (from chat):
|
||||||
|
// This line, the = in your version has a space before it
|
||||||
|
// If you're sending the arguments in plaintext, game doesn't like the space there
|
||||||
|
// (But I think it needs to be there in crypted args)
|
||||||
var buffer = new StringBuilder(300);
|
var buffer = new StringBuilder(300);
|
||||||
|
|
||||||
foreach (var kv in m_dict)
|
foreach (var kv in m_dict)
|
||||||
{
|
{
|
||||||
Write(buffer, kv.Key, kv.Value);
|
WriteKeyValue(buffer, kv.Key, kv.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return buffer.ToString();
|
return buffer.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void WriteKeyValue(StringBuilder buffer, string key, string value)
|
||||||
|
{
|
||||||
|
var escapedKey = EscapeValue(key);
|
||||||
|
var escapedvalue = EscapeValue(value);
|
||||||
|
|
||||||
|
buffer.Append($" /{escapedKey} ={escapedvalue}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Build(uint key)
|
||||||
|
{
|
||||||
|
var plainText = BuildRawString();
|
||||||
|
|
||||||
|
var enc = new SqexEncryptedArgument(plainText, key);
|
||||||
|
|
||||||
|
return enc.Build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -6,7 +6,7 @@ using static Pidgin.Parser<char>;
|
||||||
|
|
||||||
namespace Dalamud.Bootstrap.SqexArg
|
namespace Dalamud.Bootstrap.SqexArg
|
||||||
{
|
{
|
||||||
public static class ArgumentParser
|
public static class SqexArgumentParser
|
||||||
{
|
{
|
||||||
private static readonly Parser<char, string> KeyMarkerNoEscape = String(" ");
|
private static readonly Parser<char, string> KeyMarkerNoEscape = String(" ");
|
||||||
|
|
||||||
|
|
@ -8,7 +8,7 @@ using Dalamud.Bootstrap.Crypto;
|
||||||
|
|
||||||
namespace Dalamud.Bootstrap.SqexArg
|
namespace Dalamud.Bootstrap.SqexArg
|
||||||
{
|
{
|
||||||
internal sealed class EncryptedArgument
|
internal sealed class SqexEncryptedArgument
|
||||||
{
|
{
|
||||||
private static readonly char[] ChecksumTable =
|
private static readonly char[] ChecksumTable =
|
||||||
{
|
{
|
||||||
|
|
@ -32,7 +32,7 @@ namespace Dalamud.Bootstrap.SqexArg
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="encodedData">A string that is already encrypted and encoded to url-safe variant of base64.</param>
|
/// <param name="encodedData">A string that is already encrypted and encoded to url-safe variant of base64.</param>
|
||||||
/// <param name="checksum">A checksum that is used to validate the encryption key.</param>
|
/// <param name="checksum">A checksum that is used to validate the encryption key.</param>
|
||||||
private EncryptedArgument(string encodedData, char checksum)
|
private SqexEncryptedArgument(string encodedData, char checksum)
|
||||||
{
|
{
|
||||||
Data = encodedData;
|
Data = encodedData;
|
||||||
Checksum = checksum;
|
Checksum = checksum;
|
||||||
|
|
@ -43,7 +43,7 @@ namespace Dalamud.Bootstrap.SqexArg
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="plainText">A data that is not encrypted.</param>
|
/// <param name="plainText">A data that is not encrypted.</param>
|
||||||
/// <param name="key">A key that is used to encrypt the data.</param>
|
/// <param name="key">A key that is used to encrypt the data.</param>
|
||||||
public EncryptedArgument(string plainText, uint key)
|
public SqexEncryptedArgument(string plainText, uint key)
|
||||||
{
|
{
|
||||||
Span<byte> keyBytes = stackalloc byte[8];
|
Span<byte> keyBytes = stackalloc byte[8];
|
||||||
CreateKey(key, keyBytes);
|
CreateKey(key, keyBytes);
|
||||||
|
|
@ -157,7 +157,7 @@ namespace Dalamud.Bootstrap.SqexArg
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="argument">An argument that is encrypted and usually starts with //**sqex0003 and ends with **//</param>
|
/// <param name="argument">An argument that is encrypted and usually starts with //**sqex0003 and ends with **//</param>
|
||||||
/// <returns>Returns true if successful, false otherwise.</returns>
|
/// <returns>Returns true if successful, false otherwise.</returns>
|
||||||
public static bool TryParse(string argument, out EncryptedArgument output)
|
public static bool TryParse(string argument, out SqexEncryptedArgument output)
|
||||||
{
|
{
|
||||||
if (!Extract(argument, out var data, out var checksum))
|
if (!Extract(argument, out var data, out var checksum))
|
||||||
{
|
{
|
||||||
|
|
@ -165,7 +165,7 @@ namespace Dalamud.Bootstrap.SqexArg
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
output = new EncryptedArgument(data, checksum);
|
output = new SqexEncryptedArgument(data, checksum);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -196,7 +196,7 @@ namespace Dalamud.Bootstrap.SqexArg
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString() => $"//**sqex0003{Data}{Checksum}**//";
|
public string Build() => $"//**sqex0003{Data}{Checksum}**//";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Formats a key.
|
/// Formats a key.
|
||||||
380
Dalamud.sln
380
Dalamud.sln
|
|
@ -1,188 +1,192 @@
|
||||||
|
|
||||||
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 16
|
||||||
VisualStudioVersion = 16.0.29215.179
|
VisualStudioVersion = 16.0.29215.179
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud", "Dalamud\Dalamud.csproj", "{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud", "Dalamud\Dalamud.csproj", "{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud.Injector", "Dalamud.Injector\Dalamud.Injector.csproj", "{5B832F73-5F54-4ADC-870F-D0095EF72C9A}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud.Injector", "Dalamud.Injector\Dalamud.Injector.csproj", "{5B832F73-5F54-4ADC-870F-D0095EF72C9A}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{E9868930-4223-4D57-8F31-84E580E4B24B}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{E9868930-4223-4D57-8F31-84E580E4B24B}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CoreHook", "CoreHook", "{CE78D902-02B5-4C7B-A46A-D44BD2F4C622}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CoreHook", "CoreHook", "{CE78D902-02B5-4C7B-A46A-D44BD2F4C622}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook", "lib\CoreHook\src\CoreHook\CoreHook.csproj", "{441EE8F0-AD8E-479B-9F68-12D157F080AF}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook", "lib\CoreHook\src\CoreHook\CoreHook.csproj", "{441EE8F0-AD8E-479B-9F68-12D157F080AF}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook.BinaryInjection", "lib\CoreHook\src\CoreHook.BinaryInjection\CoreHook.BinaryInjection.csproj", "{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook.BinaryInjection", "lib\CoreHook\src\CoreHook.BinaryInjection\CoreHook.BinaryInjection.csproj", "{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook.DependencyModel", "lib\CoreHook\src\CoreHook.DependencyModel\CoreHook.DependencyModel.csproj", "{1155DC7F-22F5-4217-A03C-D0E603C27698}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook.DependencyModel", "lib\CoreHook\src\CoreHook.DependencyModel\CoreHook.DependencyModel.csproj", "{1155DC7F-22F5-4217-A03C-D0E603C27698}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook.CoreLoad", "lib\CoreHook\src\CoreHook.CoreLoad\CoreHook.CoreLoad.csproj", "{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook.CoreLoad", "lib\CoreHook\src\CoreHook.CoreLoad\CoreHook.CoreLoad.csproj", "{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook.IPC", "lib\CoreHook\src\CoreHook.IPC\CoreHook.IPC.csproj", "{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook.IPC", "lib\CoreHook\src\CoreHook.IPC\CoreHook.IPC.csproj", "{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook.Memory", "lib\CoreHook\src\CoreHook.Memory\CoreHook.Memory.csproj", "{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CoreHook.Memory", "lib\CoreHook\src\CoreHook.Memory\CoreHook.Memory.csproj", "{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud.Bootstrap", "Dalamud.Bootstrap\Dalamud.Bootstrap.csproj", "{19032128-E336-460F-B6E4-EAF6055589E5}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud.Bootstrap", "Dalamud.Bootstrap\Dalamud.Bootstrap.csproj", "{19032128-E336-460F-B6E4-EAF6055589E5}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud.Testing", "Dalamud.Testing\Dalamud.Testing.csproj", "{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud.Testing", "Dalamud.Testing\Dalamud.Testing.csproj", "{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Build", "Build\Build.csproj", "{A6BB70E8-7F14-410F-A296-1B4495F6F069}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Build", "Build\Build.csproj", "{A6BB70E8-7F14-410F-A296-1B4495F6F069}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Bootstrap", "Bootstrap", "{9EBA28F0-EAF8-4E5B-9FD6-D4758B07D040}"
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
EndProject
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Global
|
||||||
Debug|x64 = Debug|x64
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|x86 = Debug|x86
|
Debug|Any CPU = Debug|Any CPU
|
||||||
Release|Any CPU = Release|Any CPU
|
Debug|x64 = Debug|x64
|
||||||
Release|x64 = Release|x64
|
Debug|x86 = Debug|x86
|
||||||
Release|x86 = Release|x86
|
Release|Any CPU = Release|Any CPU
|
||||||
EndGlobalSection
|
Release|x64 = Release|x64
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
Release|x86 = Release|x86
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
EndGlobalSection
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|x64.Build.0 = Debug|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|x86.Build.0 = Debug|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|Any CPU.Build.0 = Release|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|x64.ActiveCfg = Release|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|x64.Build.0 = Release|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|x86.ActiveCfg = Release|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|x86.Build.0 = Release|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|x64.Build.0 = Debug|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|x86.Build.0 = Debug|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|Any CPU.Build.0 = Release|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|x64.ActiveCfg = Release|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|x64.Build.0 = Release|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|x86.ActiveCfg = Release|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|x86.Build.0 = Release|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|x64.Build.0 = Debug|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|x86.Build.0 = Debug|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|Any CPU.Build.0 = Release|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|x64.ActiveCfg = Release|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|x64.Build.0 = Release|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|x86.ActiveCfg = Release|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|x86.Build.0 = Release|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|x64.Build.0 = Debug|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|x86.Build.0 = Debug|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|Any CPU.Build.0 = Release|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|x64.ActiveCfg = Release|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|x64.Build.0 = Release|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|x86.ActiveCfg = Release|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|x86.Build.0 = Release|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|x64.Build.0 = Debug|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|x86.Build.0 = Debug|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|Any CPU.Build.0 = Release|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|x64.ActiveCfg = Release|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|x64.Build.0 = Release|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|x86.ActiveCfg = Release|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|x86.Build.0 = Release|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{1155DC7F-22F5-4217-A03C-D0E603C27698}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|x64.Build.0 = Debug|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|x86.Build.0 = Debug|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|Any CPU.Build.0 = Release|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|x64.ActiveCfg = Release|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|x64.Build.0 = Release|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|x86.ActiveCfg = Release|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|x86.Build.0 = Release|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|x64.Build.0 = Debug|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|x86.Build.0 = Debug|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|Any CPU.Build.0 = Release|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|x64.ActiveCfg = Release|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|x64.Build.0 = Release|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|x86.ActiveCfg = Release|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|x86.Build.0 = Release|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|x64.Build.0 = Debug|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|x86.Build.0 = Debug|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|Any CPU.Build.0 = Release|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|x64.ActiveCfg = Release|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|x64.Build.0 = Release|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|x86.ActiveCfg = Release|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|x86.Build.0 = Release|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|x64.Build.0 = Debug|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|x86.Build.0 = Debug|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|Any CPU.Build.0 = Release|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|x64.ActiveCfg = Release|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|x64.Build.0 = Release|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|x86.ActiveCfg = Release|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|x86.Build.0 = Release|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{19032128-E336-460F-B6E4-EAF6055589E5}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|x64.Build.0 = Debug|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|x86.Build.0 = Debug|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|Any CPU.Build.0 = Release|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|x64.ActiveCfg = Release|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|x64.Build.0 = Release|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|x86.ActiveCfg = Release|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|x86.Build.0 = Release|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{0A99A6B3-12E2-4197-A6F3-9211B6D4D824}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Debug|x64.Build.0 = Debug|Any CPU
|
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Debug|x86.Build.0 = Debug|Any CPU
|
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Release|x64.ActiveCfg = Release|Any CPU
|
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Release|x64.Build.0 = Release|Any CPU
|
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Release|x86.ActiveCfg = Release|Any CPU
|
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Release|x86.Build.0 = Release|Any CPU
|
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Release|x64.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
{A6BB70E8-7F14-410F-A296-1B4495F6F069}.Release|x86.Build.0 = Release|Any CPU
|
||||||
HideSolutionNode = FALSE
|
EndGlobalSection
|
||||||
EndGlobalSection
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
GlobalSection(NestedProjects) = preSolution
|
HideSolutionNode = FALSE
|
||||||
{CE78D902-02B5-4C7B-A46A-D44BD2F4C622} = {E9868930-4223-4D57-8F31-84E580E4B24B}
|
EndGlobalSection
|
||||||
{441EE8F0-AD8E-479B-9F68-12D157F080AF} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
GlobalSection(NestedProjects) = preSolution
|
||||||
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
{5B832F73-5F54-4ADC-870F-D0095EF72C9A} = {9EBA28F0-EAF8-4E5B-9FD6-D4758B07D040}
|
||||||
{1155DC7F-22F5-4217-A03C-D0E603C27698} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
{CE78D902-02B5-4C7B-A46A-D44BD2F4C622} = {E9868930-4223-4D57-8F31-84E580E4B24B}
|
||||||
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
{441EE8F0-AD8E-479B-9F68-12D157F080AF} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
||||||
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
{91CB76FC-8E4B-4B4C-B5AD-D681866A2188} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
||||||
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
{1155DC7F-22F5-4217-A03C-D0E603C27698} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
||||||
EndGlobalSection
|
{A1BC1DFD-AAE0-4221-A972-46CEBE4FCBF8} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
{B585D1B1-63D8-454E-B76E-F1E0D550DCE7} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
||||||
SolutionGuid = {79B65AC9-C940-410E-AB61-7EA7E12C7599}
|
{ED4FFE13-5F83-42B9-8847-E7C4D7A988E8} = {CE78D902-02B5-4C7B-A46A-D44BD2F4C622}
|
||||||
EndGlobalSection
|
{19032128-E336-460F-B6E4-EAF6055589E5} = {9EBA28F0-EAF8-4E5B-9FD6-D4758B07D040}
|
||||||
EndGlobal
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {79B65AC9-C940-410E-AB61-7EA7E12C7599}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue