diff --git a/samples/Kook.Net.Samples.ApiHelper/Configurations/KookBotConfigurations.cs b/samples/Kook.Net.Samples.ApiHelper/Configurations/KookBotConfigurations.cs deleted file mode 100644 index 77f9dd1a..00000000 --- a/samples/Kook.Net.Samples.ApiHelper/Configurations/KookBotConfigurations.cs +++ /dev/null @@ -1,36 +0,0 @@ -using Kook.Net.Samples.ApiHelper.Enums; - -namespace Kook.Net.Samples.ApiHelper.Configurations; - -public class KookBotConfigurations -{ - /// - /// Token - /// - public string Token { get; init; } - - /// - /// 频道ID列表 - /// - public KookChannels Channels { get; init; } - - /// - /// 角色ID列表 - /// - public KookRoles Roles { get; init; } - - /// - /// KOOK Bot运行环境 - /// - public BotEnvironment KookBotEnvironment { get; init; } -} - -public class KookChannels -{ - -} - -public class KookRoles -{ - -} \ No newline at end of file diff --git a/samples/Kook.Net.Samples.ApiHelper/Enums/BotEnvironment.cs b/samples/Kook.Net.Samples.ApiHelper/Enums/BotEnvironment.cs deleted file mode 100644 index 9de57868..00000000 --- a/samples/Kook.Net.Samples.ApiHelper/Enums/BotEnvironment.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.ComponentModel; - -namespace Kook.Net.Samples.ApiHelper.Enums; - -public enum BotEnvironment -{ - /// - /// 调试 - /// - [Description("调试")] - Development, - - /// - /// 生产 - /// - [Description("生产")] - Production, -} \ No newline at end of file diff --git a/samples/Kook.Net.Samples.ApiHelper/Extensions/ApiSearchHelper.cs b/samples/Kook.Net.Samples.ApiHelper/Extensions/ApiSearchHelper.cs deleted file mode 100644 index 2c777111..00000000 --- a/samples/Kook.Net.Samples.ApiHelper/Extensions/ApiSearchHelper.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Net.Http.Headers; -using HtmlAgilityPack; - -namespace Kook.Net.Samples.ApiHelper.Extensions; - -public static class ApiSearchHelper -{ - public static async Task> GetResult(string name) - { - var client = new HttpClient(); - client.BaseAddress = new Uri("https://kaiheila.net/"); - var request = new HttpRequestMessage(HttpMethod.Get, $"api/toc.html"); - var response = await client.SendAsync(request); - if (!response.IsSuccessStatusCode) return null; - var responseString = response.Content.ReadAsStringAsync().Result; - var html = new HtmlDocument(); - html.LoadHtml(responseString); - var nodes = html.DocumentNode.SelectNodes("//a[@class='sidebar-item']"); - var href = nodes.Select(x => (Name: x.InnerText, Link: x.Attributes["href"]?.Value)); - var result = href.Where(x => x.Name.Contains(name, StringComparison.OrdinalIgnoreCase) - || x.Link.Contains(name, StringComparison.OrdinalIgnoreCase)).AsEnumerable(); - return result; - } -} \ No newline at end of file diff --git a/samples/Kook.Net.Samples.ApiHelper/Extensions/CardHelper.cs b/samples/Kook.Net.Samples.ApiHelper/Extensions/CardHelper.cs deleted file mode 100644 index 9b7c6682..00000000 --- a/samples/Kook.Net.Samples.ApiHelper/Extensions/CardHelper.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Kook.Net.Samples.ApiHelper.Extensions; - -public static class CardHelper -{ - -} \ No newline at end of file diff --git a/samples/Kook.Net.Samples.ApiHelper/Extensions/KookBotClientExtension.cs b/samples/Kook.Net.Samples.ApiHelper/Extensions/KookBotClientExtension.cs deleted file mode 100644 index e8500c87..00000000 --- a/samples/Kook.Net.Samples.ApiHelper/Extensions/KookBotClientExtension.cs +++ /dev/null @@ -1,75 +0,0 @@ -using Kook.Net.Samples.ApiHelper.Configurations; -using Kook.WebSocket; -using Microsoft.Extensions.Hosting; -using Serilog; - -namespace Kook.Net.Samples.ApiHelper.Extensions; - -public partial class KookBotClientExtension : IHostedService -{ - private readonly IServiceProvider _service; - private readonly KookBotConfigurations _kookBotConfigurations; - private readonly KookSocketClient _kookSocketClient; - private readonly ILogger _logger; - private readonly IHttpClientFactory _httpClientFactory; - - public KookBotClientExtension( - IServiceProvider service, - KookBotConfigurations kookBotConfigurations, - KookSocketClient kookSocketClient, - ILogger logger, IHttpClientFactory httpClientFactory) - { - _service = service; - _kookBotConfigurations = kookBotConfigurations; - _kookSocketClient = kookSocketClient; - _logger = logger; - _httpClientFactory = httpClientFactory; - - _kookSocketClient.Log += LogHandler; - _kookSocketClient.MessageReceived += async message => await ProcessApiHelperCommand(message); - } - - public async Task StartAsync(CancellationToken cancellationToken) - { - await _kookSocketClient.LoginAsync(TokenType.Bot, "_kookBotConfigurations.Token"); - await _kookSocketClient.StartAsync(); - } - - /// - /// Kook.Net日志事件处理程序 - /// - private Task LogHandler(LogMessage msg) - { - switch (msg.Severity) - { - case LogSeverity.Critical: - _logger.Fatal("Kook {Message:l}", msg.ToString()); - break; - case LogSeverity.Error: - _logger.Error("Kook {Message:l}", msg.ToString()); - break; - case LogSeverity.Warning: - _logger.Warning("Kook {Message:l}", msg.ToString()); - break; - case LogSeverity.Info: - _logger.Information("Kook {Message:l}", msg.ToString()); - break; - case LogSeverity.Verbose: - _logger.Verbose("Kook {Message:l}", msg.ToString()); - break; - case LogSeverity.Debug: - _logger.Debug("Kook {Message:l}", msg.ToString()); - break; - default: - throw new ArgumentOutOfRangeException(nameof(LogSeverity)); - } - - return Task.CompletedTask; - } - - public Task StopAsync(CancellationToken cancellationToken) - { - _logger.Fatal("Kook Client Stopped!"); - return Task.CompletedTask; - } -} \ No newline at end of file diff --git a/samples/Kook.Net.Samples.ApiHelper/Extensions/KookBotClientExtensionEventHandlers.cs b/samples/Kook.Net.Samples.ApiHelper/Extensions/KookBotClientExtensionEventHandlers.cs deleted file mode 100644 index a27a7871..00000000 --- a/samples/Kook.Net.Samples.ApiHelper/Extensions/KookBotClientExtensionEventHandlers.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Kook.WebSocket; - -namespace Kook.Net.Samples.ApiHelper.Extensions; - -public partial class KookBotClientExtension -{ - private async Task ProcessApiHelperCommand(SocketMessage message) - { - if (message.Author.IsBot != false) return; - if (!message.CleanContent.StartsWith("/api")) return; - - var api = message.CleanContent.Substring(5); - var result = await ApiSearchHelper.GetResult(api); - } -} \ No newline at end of file diff --git a/samples/Kook.Net.Samples.ApiHelper/Kook.Net.Samples.ApiHelper.csproj b/samples/Kook.Net.Samples.ApiHelper/Kook.Net.Samples.ApiHelper.csproj deleted file mode 100644 index b392dd97..00000000 --- a/samples/Kook.Net.Samples.ApiHelper/Kook.Net.Samples.ApiHelper.csproj +++ /dev/null @@ -1,34 +0,0 @@ - - - - Exe - net7.0 - enable - disable - latestmajor - false - Kook.Net.Samples.ApiHelper - - - - - - - - - - - - - - - - - - - - Always - - - - diff --git a/samples/Kook.Net.Samples.ApiHelper/Program.cs b/samples/Kook.Net.Samples.ApiHelper/Program.cs deleted file mode 100644 index 4d7b2c1a..00000000 --- a/samples/Kook.Net.Samples.ApiHelper/Program.cs +++ /dev/null @@ -1,71 +0,0 @@ -using Kook.Net.Samples.ApiHelper.Configurations; -using Kook.Net.Samples.ApiHelper.Extensions; -using Kook.WebSocket; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Serilog; - -internal class Program -{ - private static async Task Main(string[] args) - { - Log.Information("Starting Kook.Net API Helper"); - - using IHost host = CreateHostBuilder(args).Build(); - - await host.RunAsync(); - } - - private static IHostBuilder CreateHostBuilder(string[] args) - { - IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args) - //.AddGlobalErrorHandler() - .ConfigureServices(ConfigureServices) - .UseSerilog((hostingContext, services, loggerConfiguration) => - { - loggerConfiguration - //.MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Command", Serilog.Events.LogEventLevel.Warning) - .ReadFrom.Configuration(hostingContext.Configuration) - .Enrich.FromLogContext() - .WriteTo.Console(); - }); - return hostBuilder; - } - - /// - /// 配置服务 - /// - /// - /// - private static void ConfigureServices(HostBuilderContext hostContext, IServiceCollection services) - { - // 根配置 - IConfigurationRoot configurationRoot = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile("appsettings.json", false) - .AddJsonFile($"appsettings.{hostContext.HostingEnvironment.EnvironmentName}.json", true, true) - .Build(); - - // KOOK Webhook 配置 - KookBotConfigurations kookBotConfigurations = new(); - configurationRoot.GetSection(nameof(KookBotConfigurations)) - .Bind(kookBotConfigurations); - - // 服务配置 - services - // 静态配置 - .AddSingleton(kookBotConfigurations) - - // KOOK 客户端程序 - .AddSingleton() - .AddHostedService(p => p.GetRequiredService()) - .AddSingleton(_ => - new KookSocketClient(new KookSocketConfig - { - AlwaysDownloadUsers = true - })) - - .AddHttpClient(); - } -} \ No newline at end of file diff --git a/samples/Kook.Net.Samples.AudioBot/Kook.Net.Samples.AudioBot.csproj b/samples/Kook.Net.Samples.AudioBot/Kook.Net.Samples.AudioBot.csproj deleted file mode 100644 index 962a9234..00000000 --- a/samples/Kook.Net.Samples.AudioBot/Kook.Net.Samples.AudioBot.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - Exe - net7.0 - enable - disable - false - default - Kook.Net.Samples.AudioBot - - - - - - - diff --git a/samples/Kook.Net.Samples.AudioBot/Program.cs b/samples/Kook.Net.Samples.AudioBot/Program.cs deleted file mode 100644 index bc358f7c..00000000 --- a/samples/Kook.Net.Samples.AudioBot/Program.cs +++ /dev/null @@ -1,165 +0,0 @@ -// See https://aka.ms/new-console-template for more information - -using Kook; -using Kook.Rest; -using Kook.WebSocket; - -class Program -{ - private readonly KookSocketClient _client; - private readonly string _token; - private readonly ulong _guildId; - private readonly ulong _channelId; - public static Task Main(string[] args) => new Program().MainAsync(); - - public Program() - { - _token = Environment.GetEnvironmentVariable("KookDebugToken", EnvironmentVariableTarget.User) - ?? throw new ArgumentNullException(nameof(_token)); - _guildId = ulong.Parse(Environment.GetEnvironmentVariable("KookDebugGuild", EnvironmentVariableTarget.User) - ?? throw new ArgumentNullException(nameof(_token))); - _channelId = ulong.Parse(Environment.GetEnvironmentVariable("KookDebugChannel", EnvironmentVariableTarget.User) - ?? throw new ArgumentNullException(nameof(_token))); - _client = new(new KookSocketConfig() {AlwaysDownloadUsers = true, MessageCacheSize = 100, LogLevel = LogSeverity.Verbose}); - - _client.Log += ClientOnLog; - _client.MessageReceived += ClientOnMessageReceived; - _client.Ready += ClientOnReady; - } - - public async Task MainAsync() - { - await _client.LoginAsync(TokenType.Bot, _token); - await _client.StartAsync(); - await Task.Delay(Timeout.Infinite); - } - - private async Task ClientOnMessageReceived(SocketMessage arg) - { - string argCleanContent = arg.CleanContent; - if (arg.Author.Id == _client.CurrentUser.Id) return; - if (arg.Author.IsBot == true) return; - if (arg.Content != "/test") return; - // await arg.Channel.SendTextAsync("收到了!", quote: new Quote(arg.Id)); - // await msg.UpdateAsync(); - await CardDemo(arg); - } - - private async Task ClientOnReady() - { - IEnumerable socketGuildUsers = await _client.GetGuild(1990044438283387).Roles.ToList()[1].GetUsersAsync().FlattenAsync(); - await Task.Delay(5000); - IEnumerable flattenAsync = await _client.GetGuild(1990044438283387).Roles.ToList()[1].GetUsersAsync().FlattenAsync(); - } - - private async Task ClientOnLog(LogMessage arg) - { - await Task.Delay(0); - Console.WriteLine(arg.ToString()); - } - - private async Task ClientOnMessageButtonClicked(string value, SocketUser user, IMessage msg, SocketTextChannel channel, SocketGuild guild) - { - // await msg.AddReactionAsync(Emote.Parse("[:djbigfan:1990044438283387/hvBcVC4nHX03k03k]", TagMode.PlainText)); - // await msg.AddReactionAsync(Emote.Parse("(emj)djbigfan(emj)[1990044438283387/hvBcVC4nHX03k03k]", TagMode.KMarkdown)); - // await msg.RemoveReactionAsync(Emote.Parse("[:djbigfan:1990044438283387/hvBcVC4nHX03k03k]", TagMode.PlainText), _client.CurrentUser); - // IEnumerable selectMany = (await _client.GetGuild(1990044438283387).GetTextChannel(6286033651700207).GetMessagesAsync(Guid.Parse("ed260ee9-1616-44ec-abff-d5cfcf9903a0"), Direction.Around, 5).ToListAsync()).SelectMany(x => x.ToList()); - // await _client.GetUserAsync(0); - // IReadOnlyCollection pinnedMessagesAsync = await _client.GetGuild(1990044438283387).GetTextChannel(6286033651700207).GetPinnedMessagesAsync(); - // await (user as SocketGuildUser).AddRoleAsync(1681537); - // IEnumerable flattenAsync = await _client.GetGuild(1990044438283387).GetRole(300643).GetUsersAsync().FlattenAsync().ConfigureAwait(false); - // IReadOnlyCollection readOnlyCollection = await _client.GetGuild(1990044438283387).GetInvitesAsync(); - // IInvite invite = await _client.GetGuild(1990044438283387).CreateInviteAsync(InviteMaxAge.NeverExpires, InviteMaxUses.Fifty); - // SocketGuild socketGuild = _client.GetGuild(1990044438283387); - // IEnumerable games = await _client.Rest.GetGamesAsync().FlattenAsync().ConfigureAwait(false); - await _client.GetGuild(1990044438283387).GetTextChannel(6286033651700207) - .SendFileAsync("E:\\OneDrive\\Pictures\\86840227_p0_新年.png", type: AttachmentType.Image); - } - - private async Task CardDemo(SocketMessage message) - { - if (message.Author.Id == _client.CurrentUser.Id) return; - if (message.Content != "/test") return; - CardBuilder cardBuilder = new CardBuilder() - .WithSize(CardSize.Large) - .AddModule(new HeaderModuleBuilder().WithText("This is header")) - .AddModule(new DividerModuleBuilder()) - .AddModule(new SectionModuleBuilder().WithText("**This** *is* ~~kmarkdown~~", true)) - .AddModule(new SectionModuleBuilder() - .WithText(new ParagraphStructBuilder() - .WithColumnCount(2) - .AddField(new PlainTextElementBuilder().WithContent("多列文本测试")) - .AddField(new KMarkdownElementBuilder().WithContent("**昵称**\n白给Doc")) - .AddField(new KMarkdownElementBuilder().WithContent("**在线时间**\n9:00-21:00")) - .AddField(new KMarkdownElementBuilder().WithContent("**服务器**\n吐槽中心"))) - .WithAccessory(new ImageElementBuilder() - .WithSource("https://img.kaiheila.cn/assets/2021-01/7kr4FkWpLV0ku0ku.jpeg") - .WithSize(ImageSize.Small)) - .WithMode(SectionAccessoryMode.Unspecified)) - .AddModule(new SectionModuleBuilder() - .WithText(new PlainTextElementBuilder().WithContent("您是否认为\"KOOK\"是最好的语音软件?")) - .WithAccessory(new ButtonElementBuilder().WithTheme(ButtonTheme.Primary).WithText("完全同意", false)) - .WithMode(SectionAccessoryMode.Right)) - .AddModule(new ContainerModuleBuilder() - .AddElement(new ImageElementBuilder().WithSource("https://img.kaiheila.cn/assets/2021-01/7kr4FkWpLV0ku0ku.jpeg"))) - .AddModule(new ImageGroupModuleBuilder() - .AddElement(new ImageElementBuilder().WithSource("https://img.kaiheila.cn/assets/2021-01/pWsmcLsPJq08c08c.jpeg")) - .AddElement(new ImageElementBuilder().WithSource("https://img.kaiheila.cn/assets/2021-01/YIfHfnvxaV0dw0dw.jpg"))) - .AddModule(new ContextModuleBuilder() - .AddElement(new PlainTextElementBuilder().WithContent("KOOK 气氛组,等你一起来搞事情")) - .AddElement(new ImageElementBuilder().WithSource("https://img.kaiheila.cn/assets/2021-01/7kr4FkWpLV0ku0ku.jpeg")) - .AddElement(new ImageElementBuilder().WithSource("https://img.kaiheila.cn/assets/2021-01/7kr4FkWpLV0ku0ku.jpeg")) - .AddElement(new ImageElementBuilder().WithSource("https://img.kaiheila.cn/assets/2021-01/7kr4FkWpLV0ku0ku.jpeg"))) - .AddModule(new ActionGroupModuleBuilder() - .AddElement(new ButtonElementBuilder().WithTheme(ButtonTheme.Primary).WithText("确定").WithValue("ok")) - .AddElement(new ButtonElementBuilder().WithTheme(ButtonTheme.Danger).WithText("取消").WithValue("cancel"))) - .AddModule(new FileModuleBuilder() - .WithSource("https://img.kaiheila.cn/attachments/2021-01/21/600972b5d0d31.txt") - .WithTitle("KOOK 介绍.txt")) - .AddModule(new AudioModuleBuilder() - .WithSource("https://img.kaiheila.cn/attachments/2021-01/21/600975671b9ab.mp3") - .WithTitle("命运交响曲") - .WithCover("https://img.kaiheila.cn/assets/2021-01/rcdqa8fAOO0hs0mc.jpg")) - .AddModule(new VideoModuleBuilder() - .WithSource("https://img.kaiheila.cn/attachments/2021-01/20/6008127e8c8de.mp4") - .WithTitle("有本事别笑")) - .AddModule(new DividerModuleBuilder()) - .AddModule(new CountdownModuleBuilder().WithMode(CountdownMode.Day).WithEndTime(DateTimeOffset.Now.AddMinutes(1))) - .AddModule(new CountdownModuleBuilder().WithMode(CountdownMode.Hour).WithEndTime(DateTimeOffset.Now.AddMinutes(1))) - .AddModule(new CountdownModuleBuilder().WithMode(CountdownMode.Second).WithEndTime(DateTimeOffset.Now.AddMinutes(2)).WithStartTime(DateTimeOffset.Now.AddMinutes(1))); - - var response = await _client.GetGuild(((SocketUserMessage) message).Guild.Id) - .GetTextChannel(message.Channel.Id) - .SendCardAsync(cardBuilder.Build(), quote: new Quote(message.Id)); - } - - private async Task ModifyMessageDemo() - { - await Task.Delay(TimeSpan.FromSeconds(1)); - - SocketTextChannel channel = _client.GetGuild(_guildId).GetTextChannel(_channelId); - var response = await channel - .SendTextAsync("BeforeModification"); - await Task.Delay(TimeSpan.FromSeconds(1)); - - IUserMessage msg = await channel.GetMessageAsync(response.Id) as IUserMessage; - await msg!.ModifyAsync(properties => properties.Content += "\n==========\nModified"); - await Task.Delay(TimeSpan.FromSeconds(1)); - - await msg.DeleteAsync(); - await Task.Delay(TimeSpan.FromSeconds(1)); - - response = await channel.SendCardAsync(new CardBuilder() - .AddModule(new HeaderModuleBuilder().WithText("Test")).Build()); - await Task.Delay(TimeSpan.FromSeconds(1)); - - msg = await channel.GetMessageAsync(response.Id) as IUserMessage; - await msg!.ModifyAsync(properties => - { - properties.Cards = properties.Cards.Append(new CardBuilder() - .AddModule(new DividerModuleBuilder()) - .AddModule(new HeaderModuleBuilder().WithText("ModificationHeader")).Build()); - }); - } - -} diff --git a/src/Kook.Net.sln b/src/Kook.Net.sln index 17da9030..6603f81b 100644 --- a/src/Kook.Net.sln +++ b/src/Kook.Net.sln @@ -16,8 +16,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{8DE5 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kook.Net.Samples.SimpleBot", "..\samples\Kook.Net.Samples.SimpleBot\Kook.Net.Samples.SimpleBot.csproj", "{FD42006A-B8F2-468B-816F-67914EAEA943}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kook.Net.Samples.ApiHelper", "..\samples\Kook.Net.Samples.ApiHelper\Kook.Net.Samples.ApiHelper.csproj", "{B66A4E45-C260-4FDE-A122-FAB36D9234D6}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kook.Net", "Kook.Net\Kook.Net.csproj", "{DBDF4A03-8FF0-4A0F-BB88-EBB061E35A77}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kook.Net.Samples.ReactionRoleBot", "..\samples\Kook.Net.Samples.ReactionRoleBot\Kook.Net.Samples.ReactionRoleBot.csproj", "{BDDB543B-69D2-4472-9C09-E40DD74D260C}" @@ -28,8 +26,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kook.Net.Commands", "Kook.N EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kook.Net.Samples.TextCommands", "..\samples\Kook.Net.Samples.TextCommands\Kook.Net.Samples.TextCommands.csproj", "{42BEF15F-724B-46A7-93F2-341D8D0B2759}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kook.Net.Samples.AudioBot", "..\samples\Kook.Net.Samples.AudioBot\Kook.Net.Samples.AudioBot.csproj", "{29DF9D09-4F74-4271-92E4-1BDBF28AEE4C}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kook.Net.Tests.Integration", "..\test\Kook.Net.Tests.Integration\Kook.Net.Tests.Integration.csproj", "{E1A2F066-6FE5-452E-946C-6D818E83C881}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Experimental", "Experimental", "{BB39595B-5DCE-4B1C-8740-A013C261E317}" @@ -62,10 +58,6 @@ Global {FD42006A-B8F2-468B-816F-67914EAEA943}.Debug|Any CPU.Build.0 = Debug|Any CPU {FD42006A-B8F2-468B-816F-67914EAEA943}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD42006A-B8F2-468B-816F-67914EAEA943}.Release|Any CPU.Build.0 = Release|Any CPU - {B66A4E45-C260-4FDE-A122-FAB36D9234D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B66A4E45-C260-4FDE-A122-FAB36D9234D6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B66A4E45-C260-4FDE-A122-FAB36D9234D6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B66A4E45-C260-4FDE-A122-FAB36D9234D6}.Release|Any CPU.Build.0 = Release|Any CPU {DBDF4A03-8FF0-4A0F-BB88-EBB061E35A77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DBDF4A03-8FF0-4A0F-BB88-EBB061E35A77}.Debug|Any CPU.Build.0 = Debug|Any CPU {DBDF4A03-8FF0-4A0F-BB88-EBB061E35A77}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -82,10 +74,6 @@ Global {42BEF15F-724B-46A7-93F2-341D8D0B2759}.Debug|Any CPU.Build.0 = Debug|Any CPU {42BEF15F-724B-46A7-93F2-341D8D0B2759}.Release|Any CPU.ActiveCfg = Release|Any CPU {42BEF15F-724B-46A7-93F2-341D8D0B2759}.Release|Any CPU.Build.0 = Release|Any CPU - {29DF9D09-4F74-4271-92E4-1BDBF28AEE4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29DF9D09-4F74-4271-92E4-1BDBF28AEE4C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29DF9D09-4F74-4271-92E4-1BDBF28AEE4C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29DF9D09-4F74-4271-92E4-1BDBF28AEE4C}.Release|Any CPU.Build.0 = Release|Any CPU {E1A2F066-6FE5-452E-946C-6D818E83C881}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E1A2F066-6FE5-452E-946C-6D818E83C881}.Debug|Any CPU.Build.0 = Debug|Any CPU {E1A2F066-6FE5-452E-946C-6D818E83C881}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -100,11 +88,9 @@ Global {0DC41632-CF8D-4E1C-85E7-9B60308B5834} = {1E3AD043-5861-4B7F-8CE6-0EE9B4D6CB91} {9A4ED2A6-5560-434A-89A6-5EAA8024383F} = {58B166AB-82DD-472F-AC70-9318DA4F881E} {FD42006A-B8F2-468B-816F-67914EAEA943} = {8DE556F9-829D-48D3-A41C-FA57207CAE72} - {B66A4E45-C260-4FDE-A122-FAB36D9234D6} = {8DE556F9-829D-48D3-A41C-FA57207CAE72} {BDDB543B-69D2-4472-9C09-E40DD74D260C} = {8DE556F9-829D-48D3-A41C-FA57207CAE72} {10ED905D-0060-40BF-8A79-46D52714DB30} = {B51E68C1-B6FC-49A3-B04D-57BB0C19B192} {42BEF15F-724B-46A7-93F2-341D8D0B2759} = {8DE556F9-829D-48D3-A41C-FA57207CAE72} - {29DF9D09-4F74-4271-92E4-1BDBF28AEE4C} = {8DE556F9-829D-48D3-A41C-FA57207CAE72} {E1A2F066-6FE5-452E-946C-6D818E83C881} = {1E3AD043-5861-4B7F-8CE6-0EE9B4D6CB91} {95881FD6-BAF5-43A6-9D75-9F9181FC9D21} = {BB39595B-5DCE-4B1C-8740-A013C261E317} EndGlobalSection