From 1e83fce38d3c3f40a42138e712de9ffa68a814f3 Mon Sep 17 00:00:00 2001 From: Matthias Hoste <42743095+matthias-hoste@users.noreply.github.com> Date: Sat, 7 Feb 2026 23:44:42 +0100 Subject: [PATCH 01/10] feat: initial commit --- .../.idea.Phoenix.ApiWrapper/.idea/.gitignore | 13 + .../.idea/encodings.xml | 4 + .../.idea/indexLayout.xml | 8 + .idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml | 6 + .vscode/launch.json | 26 - .vscode/tasks.json | 41 -- Phoenix.ApiWrapper.sln | 16 + .../Alliances/AlliancesRequestBuilder.cs | 53 ++ .../Alliances/Get/GetRequestBuilder.cs | 99 ++++ .../Alliances/Search/SearchRequestBuilder.cs | 99 ++++ .../WarpointLb/WarpointLbRequestBuilder.cs | 84 +++ .../Generated/GalaxyLife/ApiClient.cs | 67 +++ .../BaseTemplateRequestBuilder.cs | 41 ++ .../BaseTemplate/Get/GetRequestBuilder.cs | 99 ++++ .../Leaderboard/LeaderboardRequestBuilder.cs | 59 ++ .../RivalsWon/RivalsWonRequestBuilder.cs | 84 +++ .../Warpoints/WarpointsRequestBuilder.cs | 84 +++ .../Leaderboard/Xp/XpRequestBuilder.cs | 84 +++ .../XpFromAttackRequestBuilder.cs | 84 +++ .../GetMaintenanceStatusRequestBuilder.cs | 84 +++ .../GetMaintenanceTimeRequestBuilder.cs | 84 +++ .../GalaxyLife/Status/StatusRequestBuilder.cs | 96 ++++ .../Users/Count/CountRequestBuilder.cs | 84 +++ .../GalaxyLife/Users/Get/GetRequestBuilder.cs | 99 ++++ .../Users/Name/NameRequestBuilder.cs | 99 ++++ .../PlatformIdRequestBuilder.cs | 99 ++++ .../Users/Search/SearchRequestBuilder.cs | 99 ++++ .../Users/Stats/StatsRequestBuilder.cs | 99 ++++ .../Users/Steam/SteamRequestBuilder.cs | 99 ++++ .../GalaxyLife/Users/UsersRequestBuilder.cs | 77 +++ .../Generated/GalaxyLife/kiota-lock.json | 34 ++ .../KiotaAccessTokenProvider.cs | 29 + Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj | 38 ++ Phoenix.ApiWrapper/PhoenixApiClient.cs | 340 +++++++++++ dotnet-tools.json | 13 + src/GL.NET.sln | 31 - src/GL.NET/ApiClient.cs | 533 ------------------ src/GL.NET/AuthorizedGLClient.cs | 206 ------- src/GL.NET/BackendClient.cs | 250 -------- src/GL.NET/Entities/Alliance.cs | 34 -- src/GL.NET/Entities/AllianceUser.cs | 14 - src/GL.NET/Entities/BattleLog.cs | 31 - src/GL.NET/Entities/Emblem.cs | 73 --- src/GL.NET/Entities/Enums/AllianceRole.cs | 8 - src/GL.NET/Entities/Enums/PhoenixRole.cs | 11 - src/GL.NET/Entities/Fingerprint.cs | 12 - src/GL.NET/Entities/LeaderboardUser.cs | 83 --- src/GL.NET/Entities/PhoenixUser.cs | 23 - src/GL.NET/Entities/Planet.cs | 8 - src/GL.NET/Entities/ServerStatus.cs | 17 - src/GL.NET/Entities/TokenResponse.cs | 15 - src/GL.NET/Entities/User.cs | 20 - src/GL.NET/Entities/UserGifts.cs | 8 - src/GL.NET/Entities/UserLogins.cs | 8 - src/GL.NET/Entities/UserStats.cs | 49 -- src/GL.NET/Entities/WarSummary.cs | 48 -- src/GL.NET/Exceptions/GLException.cs | 7 - src/GL.NET/Exceptions/NoAuthException.cs | 6 - src/GL.NET/GL.NET.csproj | 32 -- src/GL.NET/GLClient.cs | 89 --- src/TestConsoleApp/Program.cs | 55 -- src/TestConsoleApp/TestConsoleApp.csproj | 14 - 62 files changed, 2457 insertions(+), 1752 deletions(-) create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/encodings.xml create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/indexLayout.xml create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/tasks.json create mode 100644 Phoenix.ApiWrapper.sln create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/AlliancesRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Get/GetRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Search/SearchRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/WarpointLb/WarpointLbRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/ApiClient.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/BaseTemplateRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/Get/GetRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/LeaderboardRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/RivalsWon/RivalsWonRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Warpoints/WarpointsRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Xp/XpRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/XpFromAttack/XpFromAttackRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceStatus/GetMaintenanceStatusRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceTime/GetMaintenanceTimeRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Status/StatusRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Count/CountRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Get/GetRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Name/NameRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/PlatformIdNamespace/PlatformIdRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Search/SearchRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Stats/StatsRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Steam/SteamRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/Users/UsersRequestBuilder.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/kiota-lock.json create mode 100644 Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs create mode 100644 Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj create mode 100644 Phoenix.ApiWrapper/PhoenixApiClient.cs create mode 100644 dotnet-tools.json delete mode 100644 src/GL.NET.sln delete mode 100644 src/GL.NET/ApiClient.cs delete mode 100644 src/GL.NET/AuthorizedGLClient.cs delete mode 100644 src/GL.NET/BackendClient.cs delete mode 100644 src/GL.NET/Entities/Alliance.cs delete mode 100644 src/GL.NET/Entities/AllianceUser.cs delete mode 100644 src/GL.NET/Entities/BattleLog.cs delete mode 100644 src/GL.NET/Entities/Emblem.cs delete mode 100644 src/GL.NET/Entities/Enums/AllianceRole.cs delete mode 100644 src/GL.NET/Entities/Enums/PhoenixRole.cs delete mode 100644 src/GL.NET/Entities/Fingerprint.cs delete mode 100644 src/GL.NET/Entities/LeaderboardUser.cs delete mode 100644 src/GL.NET/Entities/PhoenixUser.cs delete mode 100644 src/GL.NET/Entities/Planet.cs delete mode 100644 src/GL.NET/Entities/ServerStatus.cs delete mode 100644 src/GL.NET/Entities/TokenResponse.cs delete mode 100644 src/GL.NET/Entities/User.cs delete mode 100644 src/GL.NET/Entities/UserGifts.cs delete mode 100644 src/GL.NET/Entities/UserLogins.cs delete mode 100644 src/GL.NET/Entities/UserStats.cs delete mode 100644 src/GL.NET/Entities/WarSummary.cs delete mode 100644 src/GL.NET/Exceptions/GLException.cs delete mode 100644 src/GL.NET/Exceptions/NoAuthException.cs delete mode 100644 src/GL.NET/GL.NET.csproj delete mode 100644 src/GL.NET/GLClient.cs delete mode 100644 src/TestConsoleApp/Program.cs delete mode 100644 src/TestConsoleApp/TestConsoleApp.csproj diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore b/.idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore new file mode 100644 index 0000000..983d86b --- /dev/null +++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/projectSettingsUpdater.xml +/.idea.Phoenix.ApiWrapper.iml +/modules.xml +/contentModel.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/encodings.xml b/.idea/.idea.Phoenix.ApiWrapper/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/indexLayout.xml b/.idea/.idea.Phoenix.ApiWrapper/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml b/.idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 6073f98..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - // Use IntelliSense to find out which attributes exist for C# debugging - // Use hover for the description of the existing attributes - // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md - "name": ".NET Core Launch (console)", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/src/TestConsoleApp/bin/Debug/net7.0/TestConsoleApp.dll", - "args": [], - "cwd": "${workspaceFolder}/src/TestConsoleApp", - // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console - "console": "internalConsole", - "stopAtEntry": false - }, - { - "name": ".NET Core Attach", - "type": "coreclr", - "request": "attach" - } - ] -} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index f3128ed..0000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "command": "dotnet", - "type": "process", - "args": [ - "build", - "${workspaceFolder}/src/TestConsoleApp/TestConsoleApp.csproj", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" - ], - "problemMatcher": "$msCompile" - }, - { - "label": "publish", - "command": "dotnet", - "type": "process", - "args": [ - "publish", - "${workspaceFolder}/src/TestConsoleApp/TestConsoleApp.csproj", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" - ], - "problemMatcher": "$msCompile" - }, - { - "label": "watch", - "command": "dotnet", - "type": "process", - "args": [ - "watch", - "run", - "--project", - "${workspaceFolder}/src/TestConsoleApp/TestConsoleApp.csproj" - ], - "problemMatcher": "$msCompile" - } - ] -} \ No newline at end of file diff --git a/Phoenix.ApiWrapper.sln b/Phoenix.ApiWrapper.sln new file mode 100644 index 0000000..5cf45dd --- /dev/null +++ b/Phoenix.ApiWrapper.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Phoenix.ApiWrapper", "Phoenix.ApiWrapper\Phoenix.ApiWrapper.csproj", "{3C9F0468-0B32-45A2-82E0-53D75B28D00C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/AlliancesRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/AlliancesRequestBuilder.cs new file mode 100644 index 0000000..80f8038 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/AlliancesRequestBuilder.cs @@ -0,0 +1,53 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions; +using Phoenix.GalaxyLife.Api.Alliances.Get; +using Phoenix.GalaxyLife.Api.Alliances.Search; +using Phoenix.GalaxyLife.Api.Alliances.WarpointLb; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System; +namespace Phoenix.GalaxyLife.Api.Alliances +{ + /// + /// Builds and executes requests for operations under \Alliances + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class AlliancesRequestBuilder : BaseRequestBuilder + { + /// The getPath property + public global::Phoenix.GalaxyLife.Api.Alliances.Get.GetRequestBuilder GetPath + { + get => new global::Phoenix.GalaxyLife.Api.Alliances.Get.GetRequestBuilder(PathParameters, RequestAdapter); + } + /// The search property + public global::Phoenix.GalaxyLife.Api.Alliances.Search.SearchRequestBuilder Search + { + get => new global::Phoenix.GalaxyLife.Api.Alliances.Search.SearchRequestBuilder(PathParameters, RequestAdapter); + } + /// The warpointLb property + public global::Phoenix.GalaxyLife.Api.Alliances.WarpointLb.WarpointLbRequestBuilder WarpointLb + { + get => new global::Phoenix.GalaxyLife.Api.Alliances.WarpointLb.WarpointLbRequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public AlliancesRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public AlliancesRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances", rawUrl) + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Get/GetRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Get/GetRequestBuilder.cs new file mode 100644 index 0000000..7022eb1 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Get/GetRequestBuilder.cs @@ -0,0 +1,99 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Alliances.Get +{ + /// + /// Builds and executes requests for operations under \Alliances\get + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class GetRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public GetRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/get{?name*}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public GetRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/get{?name*}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Alliances.Get.GetRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Alliances.Get.GetRequestBuilder(rawUrl, RequestAdapter); + } + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class GetRequestBuilderGetQueryParameters + #pragma warning restore CS1591 + { +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + [QueryParameter("name")] + public string? Name { get; set; } +#nullable restore +#else + [QueryParameter("name")] + public string Name { get; set; } +#endif + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class GetRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Search/SearchRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Search/SearchRequestBuilder.cs new file mode 100644 index 0000000..0d3e61e --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/Search/SearchRequestBuilder.cs @@ -0,0 +1,99 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Alliances.Search +{ + /// + /// Builds and executes requests for operations under \Alliances\search + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class SearchRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public SearchRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/search{?name*}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public SearchRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/search{?name*}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Alliances.Search.SearchRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Alliances.Search.SearchRequestBuilder(rawUrl, RequestAdapter); + } + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class SearchRequestBuilderGetQueryParameters + #pragma warning restore CS1591 + { +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + [QueryParameter("name")] + public string? Name { get; set; } +#nullable restore +#else + [QueryParameter("name")] + public string Name { get; set; } +#endif + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class SearchRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/WarpointLb/WarpointLbRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/WarpointLb/WarpointLbRequestBuilder.cs new file mode 100644 index 0000000..2f09b59 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Alliances/WarpointLb/WarpointLbRequestBuilder.cs @@ -0,0 +1,84 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Alliances.WarpointLb +{ + /// + /// Builds and executes requests for operations under \Alliances\warpointLb + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WarpointLbRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public WarpointLbRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/warpointLb", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public WarpointLbRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Alliances/warpointLb", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Alliances.WarpointLb.WarpointLbRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Alliances.WarpointLb.WarpointLbRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WarpointLbRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/ApiClient.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/ApiClient.cs new file mode 100644 index 0000000..0f300d2 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/ApiClient.cs @@ -0,0 +1,67 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions; +using Microsoft.Kiota.Serialization.Form; +using Microsoft.Kiota.Serialization.Json; +using Microsoft.Kiota.Serialization.Multipart; +using Microsoft.Kiota.Serialization.Text; +using Phoenix.GalaxyLife.Api.Alliances; +using Phoenix.GalaxyLife.Api.BaseTemplate; +using Phoenix.GalaxyLife.Api.Leaderboard; +using Phoenix.GalaxyLife.Api.Status; +using Phoenix.GalaxyLife.Api.Users; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System; +namespace Phoenix.GalaxyLife.Api +{ + /// + /// The main entry point of the SDK, exposes the configuration and the fluent API. + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class ApiClient : BaseRequestBuilder + { + /// The Alliances property + public global::Phoenix.GalaxyLife.Api.Alliances.AlliancesRequestBuilder Alliances + { + get => new global::Phoenix.GalaxyLife.Api.Alliances.AlliancesRequestBuilder(PathParameters, RequestAdapter); + } + /// The BaseTemplate property + public global::Phoenix.GalaxyLife.Api.BaseTemplate.BaseTemplateRequestBuilder BaseTemplate + { + get => new global::Phoenix.GalaxyLife.Api.BaseTemplate.BaseTemplateRequestBuilder(PathParameters, RequestAdapter); + } + /// The Leaderboard property + public global::Phoenix.GalaxyLife.Api.Leaderboard.LeaderboardRequestBuilder Leaderboard + { + get => new global::Phoenix.GalaxyLife.Api.Leaderboard.LeaderboardRequestBuilder(PathParameters, RequestAdapter); + } + /// The status property + public global::Phoenix.GalaxyLife.Api.Status.StatusRequestBuilder Status + { + get => new global::Phoenix.GalaxyLife.Api.Status.StatusRequestBuilder(PathParameters, RequestAdapter); + } + /// The Users property + public global::Phoenix.GalaxyLife.Api.Users.UsersRequestBuilder Users + { + get => new global::Phoenix.GalaxyLife.Api.Users.UsersRequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// The request adapter to use to execute the requests. + public ApiClient(IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}", new Dictionary()) + { + ApiClientBuilder.RegisterDefaultSerializer(); + ApiClientBuilder.RegisterDefaultSerializer(); + ApiClientBuilder.RegisterDefaultSerializer(); + ApiClientBuilder.RegisterDefaultSerializer(); + ApiClientBuilder.RegisterDefaultDeserializer(); + ApiClientBuilder.RegisterDefaultDeserializer(); + ApiClientBuilder.RegisterDefaultDeserializer(); + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/BaseTemplateRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/BaseTemplateRequestBuilder.cs new file mode 100644 index 0000000..90c7d6d --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/BaseTemplateRequestBuilder.cs @@ -0,0 +1,41 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions; +using Phoenix.GalaxyLife.Api.BaseTemplate.Get; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System; +namespace Phoenix.GalaxyLife.Api.BaseTemplate +{ + /// + /// Builds and executes requests for operations under \BaseTemplate + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class BaseTemplateRequestBuilder : BaseRequestBuilder + { + /// The getPath property + public global::Phoenix.GalaxyLife.Api.BaseTemplate.Get.GetRequestBuilder GetPath + { + get => new global::Phoenix.GalaxyLife.Api.BaseTemplate.Get.GetRequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public BaseTemplateRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/BaseTemplate", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public BaseTemplateRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/BaseTemplate", rawUrl) + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/Get/GetRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/Get/GetRequestBuilder.cs new file mode 100644 index 0000000..db93577 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/BaseTemplate/Get/GetRequestBuilder.cs @@ -0,0 +1,99 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.BaseTemplate.Get +{ + /// + /// Builds and executes requests for operations under \BaseTemplate\get + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class GetRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public GetRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/BaseTemplate/get{?id*}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public GetRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/BaseTemplate/get{?id*}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.BaseTemplate.Get.GetRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.BaseTemplate.Get.GetRequestBuilder(rawUrl, RequestAdapter); + } + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class GetRequestBuilderGetQueryParameters + #pragma warning restore CS1591 + { +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + [QueryParameter("id")] + public string? Id { get; set; } +#nullable restore +#else + [QueryParameter("id")] + public string Id { get; set; } +#endif + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class GetRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/LeaderboardRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/LeaderboardRequestBuilder.cs new file mode 100644 index 0000000..62e670a --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/LeaderboardRequestBuilder.cs @@ -0,0 +1,59 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions; +using Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon; +using Phoenix.GalaxyLife.Api.Leaderboard.Warpoints; +using Phoenix.GalaxyLife.Api.Leaderboard.Xp; +using Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System; +namespace Phoenix.GalaxyLife.Api.Leaderboard +{ + /// + /// Builds and executes requests for operations under \Leaderboard + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class LeaderboardRequestBuilder : BaseRequestBuilder + { + /// The rivalsWon property + public global::Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon.RivalsWonRequestBuilder RivalsWon + { + get => new global::Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon.RivalsWonRequestBuilder(PathParameters, RequestAdapter); + } + /// The warpoints property + public global::Phoenix.GalaxyLife.Api.Leaderboard.Warpoints.WarpointsRequestBuilder Warpoints + { + get => new global::Phoenix.GalaxyLife.Api.Leaderboard.Warpoints.WarpointsRequestBuilder(PathParameters, RequestAdapter); + } + /// The xp property + public global::Phoenix.GalaxyLife.Api.Leaderboard.Xp.XpRequestBuilder Xp + { + get => new global::Phoenix.GalaxyLife.Api.Leaderboard.Xp.XpRequestBuilder(PathParameters, RequestAdapter); + } + /// The xpFromAttack property + public global::Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack.XpFromAttackRequestBuilder XpFromAttack + { + get => new global::Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack.XpFromAttackRequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public LeaderboardRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public LeaderboardRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard", rawUrl) + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/RivalsWon/RivalsWonRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/RivalsWon/RivalsWonRequestBuilder.cs new file mode 100644 index 0000000..61bb964 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/RivalsWon/RivalsWonRequestBuilder.cs @@ -0,0 +1,84 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon +{ + /// + /// Builds and executes requests for operations under \Leaderboard\rivalsWon + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class RivalsWonRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public RivalsWonRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/rivalsWon", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public RivalsWonRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/rivalsWon", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon.RivalsWonRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Leaderboard.RivalsWon.RivalsWonRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class RivalsWonRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Warpoints/WarpointsRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Warpoints/WarpointsRequestBuilder.cs new file mode 100644 index 0000000..d3a03e8 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Warpoints/WarpointsRequestBuilder.cs @@ -0,0 +1,84 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Leaderboard.Warpoints +{ + /// + /// Builds and executes requests for operations under \Leaderboard\warpoints + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WarpointsRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public WarpointsRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/warpoints", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public WarpointsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/warpoints", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Leaderboard.Warpoints.WarpointsRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Leaderboard.Warpoints.WarpointsRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WarpointsRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Xp/XpRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Xp/XpRequestBuilder.cs new file mode 100644 index 0000000..7d678da --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/Xp/XpRequestBuilder.cs @@ -0,0 +1,84 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Leaderboard.Xp +{ + /// + /// Builds and executes requests for operations under \Leaderboard\xp + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class XpRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public XpRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/xp", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public XpRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/xp", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Leaderboard.Xp.XpRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Leaderboard.Xp.XpRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class XpRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/XpFromAttack/XpFromAttackRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/XpFromAttack/XpFromAttackRequestBuilder.cs new file mode 100644 index 0000000..2d750ec --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Leaderboard/XpFromAttack/XpFromAttackRequestBuilder.cs @@ -0,0 +1,84 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack +{ + /// + /// Builds and executes requests for operations under \Leaderboard\xpFromAttack + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class XpFromAttackRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public XpFromAttackRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/xpFromAttack", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public XpFromAttackRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Leaderboard/xpFromAttack", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack.XpFromAttackRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Leaderboard.XpFromAttack.XpFromAttackRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class XpFromAttackRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceStatus/GetMaintenanceStatusRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceStatus/GetMaintenanceStatusRequestBuilder.cs new file mode 100644 index 0000000..8f6a2cd --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceStatus/GetMaintenanceStatusRequestBuilder.cs @@ -0,0 +1,84 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus +{ + /// + /// Builds and executes requests for operations under \status\getMaintenanceStatus + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class GetMaintenanceStatusRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public GetMaintenanceStatusRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status/getMaintenanceStatus", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public GetMaintenanceStatusRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status/getMaintenanceStatus", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus.GetMaintenanceStatusRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus.GetMaintenanceStatusRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class GetMaintenanceStatusRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceTime/GetMaintenanceTimeRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceTime/GetMaintenanceTimeRequestBuilder.cs new file mode 100644 index 0000000..89b5488 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/GetMaintenanceTime/GetMaintenanceTimeRequestBuilder.cs @@ -0,0 +1,84 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime +{ + /// + /// Builds and executes requests for operations under \status\getMaintenanceTime + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class GetMaintenanceTimeRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public GetMaintenanceTimeRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status/getMaintenanceTime", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public GetMaintenanceTimeRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status/getMaintenanceTime", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime.GetMaintenanceTimeRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime.GetMaintenanceTimeRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class GetMaintenanceTimeRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/StatusRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/StatusRequestBuilder.cs new file mode 100644 index 0000000..13ce7aa --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Status/StatusRequestBuilder.cs @@ -0,0 +1,96 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus; +using Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Status +{ + /// + /// Builds and executes requests for operations under \status + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class StatusRequestBuilder : BaseRequestBuilder + { + /// The getMaintenanceStatus property + public global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus.GetMaintenanceStatusRequestBuilder GetMaintenanceStatus + { + get => new global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceStatus.GetMaintenanceStatusRequestBuilder(PathParameters, RequestAdapter); + } + /// The getMaintenanceTime property + public global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime.GetMaintenanceTimeRequestBuilder GetMaintenanceTime + { + get => new global::Phoenix.GalaxyLife.Api.Status.GetMaintenanceTime.GetMaintenanceTimeRequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public StatusRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public StatusRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/status", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Status.StatusRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Status.StatusRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class StatusRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Count/CountRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Count/CountRequestBuilder.cs new file mode 100644 index 0000000..a5245bc --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Count/CountRequestBuilder.cs @@ -0,0 +1,84 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Users.Count +{ + /// + /// Builds and executes requests for operations under \Users\count + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class CountRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public CountRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/count", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public CountRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/count", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Users.Count.CountRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Users.Count.CountRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class CountRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Get/GetRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Get/GetRequestBuilder.cs new file mode 100644 index 0000000..7b5148d --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Get/GetRequestBuilder.cs @@ -0,0 +1,99 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Users.Get +{ + /// + /// Builds and executes requests for operations under \Users\get + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class GetRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public GetRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/get{?id*}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public GetRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/get{?id*}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Users.Get.GetRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Users.Get.GetRequestBuilder(rawUrl, RequestAdapter); + } + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class GetRequestBuilderGetQueryParameters + #pragma warning restore CS1591 + { +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + [QueryParameter("id")] + public string? Id { get; set; } +#nullable restore +#else + [QueryParameter("id")] + public string Id { get; set; } +#endif + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class GetRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Name/NameRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Name/NameRequestBuilder.cs new file mode 100644 index 0000000..05e737d --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Name/NameRequestBuilder.cs @@ -0,0 +1,99 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Users.Name +{ + /// + /// Builds and executes requests for operations under \Users\name + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class NameRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public NameRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/name{?name*}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public NameRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/name{?name*}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Users.Name.NameRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Users.Name.NameRequestBuilder(rawUrl, RequestAdapter); + } + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class NameRequestBuilderGetQueryParameters + #pragma warning restore CS1591 + { +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + [QueryParameter("name")] + public string? Name { get; set; } +#nullable restore +#else + [QueryParameter("name")] + public string Name { get; set; } +#endif + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class NameRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/PlatformIdNamespace/PlatformIdRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/PlatformIdNamespace/PlatformIdRequestBuilder.cs new file mode 100644 index 0000000..8876811 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/PlatformIdNamespace/PlatformIdRequestBuilder.cs @@ -0,0 +1,99 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace +{ + /// + /// Builds and executes requests for operations under \Users\platformId + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class PlatformIdRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public PlatformIdRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/platformId{?userId*}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public PlatformIdRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/platformId{?userId*}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace.PlatformIdRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace.PlatformIdRequestBuilder(rawUrl, RequestAdapter); + } + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class PlatformIdRequestBuilderGetQueryParameters + #pragma warning restore CS1591 + { +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + [QueryParameter("userId")] + public string? UserId { get; set; } +#nullable restore +#else + [QueryParameter("userId")] + public string UserId { get; set; } +#endif + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class PlatformIdRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Search/SearchRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Search/SearchRequestBuilder.cs new file mode 100644 index 0000000..f1dd2ee --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Search/SearchRequestBuilder.cs @@ -0,0 +1,99 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Users.Search +{ + /// + /// Builds and executes requests for operations under \Users\search + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class SearchRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public SearchRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/search{?name*}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public SearchRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/search{?name*}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Users.Search.SearchRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Users.Search.SearchRequestBuilder(rawUrl, RequestAdapter); + } + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class SearchRequestBuilderGetQueryParameters + #pragma warning restore CS1591 + { +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + [QueryParameter("name")] + public string? Name { get; set; } +#nullable restore +#else + [QueryParameter("name")] + public string Name { get; set; } +#endif + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class SearchRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Stats/StatsRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Stats/StatsRequestBuilder.cs new file mode 100644 index 0000000..a120dd2 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Stats/StatsRequestBuilder.cs @@ -0,0 +1,99 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Users.Stats +{ + /// + /// Builds and executes requests for operations under \Users\stats + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class StatsRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public StatsRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/stats{?id*}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public StatsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/stats{?id*}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Users.Stats.StatsRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Users.Stats.StatsRequestBuilder(rawUrl, RequestAdapter); + } + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class StatsRequestBuilderGetQueryParameters + #pragma warning restore CS1591 + { +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + [QueryParameter("id")] + public string? Id { get; set; } +#nullable restore +#else + [QueryParameter("id")] + public string Id { get; set; } +#endif + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class StatsRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Steam/SteamRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Steam/SteamRequestBuilder.cs new file mode 100644 index 0000000..24fd826 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/Steam/SteamRequestBuilder.cs @@ -0,0 +1,99 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.GalaxyLife.Api.Users.Steam +{ + /// + /// Builds and executes requests for operations under \Users\steam + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class SteamRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public SteamRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/steam{?steamId*}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public SteamRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users/steam{?steamId*}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendPrimitiveAsync(requestInfo, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.GalaxyLife.Api.Users.Steam.SteamRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.GalaxyLife.Api.Users.Steam.SteamRequestBuilder(rawUrl, RequestAdapter); + } + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class SteamRequestBuilderGetQueryParameters + #pragma warning restore CS1591 + { +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + [QueryParameter("steamId")] + public string? SteamId { get; set; } +#nullable restore +#else + [QueryParameter("steamId")] + public string SteamId { get; set; } +#endif + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class SteamRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/UsersRequestBuilder.cs b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/UsersRequestBuilder.cs new file mode 100644 index 0000000..0b5a9b9 --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/Users/UsersRequestBuilder.cs @@ -0,0 +1,77 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions; +using Phoenix.GalaxyLife.Api.Users.Count; +using Phoenix.GalaxyLife.Api.Users.Get; +using Phoenix.GalaxyLife.Api.Users.Name; +using Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace; +using Phoenix.GalaxyLife.Api.Users.Search; +using Phoenix.GalaxyLife.Api.Users.Stats; +using Phoenix.GalaxyLife.Api.Users.Steam; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System; +namespace Phoenix.GalaxyLife.Api.Users +{ + /// + /// Builds and executes requests for operations under \Users + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class UsersRequestBuilder : BaseRequestBuilder + { + /// The count property + public global::Phoenix.GalaxyLife.Api.Users.Count.CountRequestBuilder Count + { + get => new global::Phoenix.GalaxyLife.Api.Users.Count.CountRequestBuilder(PathParameters, RequestAdapter); + } + /// The getPath property + public global::Phoenix.GalaxyLife.Api.Users.Get.GetRequestBuilder GetPath + { + get => new global::Phoenix.GalaxyLife.Api.Users.Get.GetRequestBuilder(PathParameters, RequestAdapter); + } + /// The name property + public global::Phoenix.GalaxyLife.Api.Users.Name.NameRequestBuilder Name + { + get => new global::Phoenix.GalaxyLife.Api.Users.Name.NameRequestBuilder(PathParameters, RequestAdapter); + } + /// The platformId property + public global::Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace.PlatformIdRequestBuilder PlatformId + { + get => new global::Phoenix.GalaxyLife.Api.Users.PlatformIdNamespace.PlatformIdRequestBuilder(PathParameters, RequestAdapter); + } + /// The search property + public global::Phoenix.GalaxyLife.Api.Users.Search.SearchRequestBuilder Search + { + get => new global::Phoenix.GalaxyLife.Api.Users.Search.SearchRequestBuilder(PathParameters, RequestAdapter); + } + /// The stats property + public global::Phoenix.GalaxyLife.Api.Users.Stats.StatsRequestBuilder Stats + { + get => new global::Phoenix.GalaxyLife.Api.Users.Stats.StatsRequestBuilder(PathParameters, RequestAdapter); + } + /// The steam property + public global::Phoenix.GalaxyLife.Api.Users.Steam.SteamRequestBuilder Steam + { + get => new global::Phoenix.GalaxyLife.Api.Users.Steam.SteamRequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public UsersRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public UsersRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Users", rawUrl) + { + } + } +} +#pragma warning restore CS0618 diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/kiota-lock.json b/Phoenix.ApiWrapper/Generated/GalaxyLife/kiota-lock.json new file mode 100644 index 0000000..a7db1eb --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/kiota-lock.json @@ -0,0 +1,34 @@ +{ + "descriptionHash": "88576DEA7F6C136F9310E75AE17D5119433B0FB1783449220787A2CC1048FF670365298F89B04E11939A78C5964B4A19D3903D6B3479193359F1E7ADAF84277A", + "descriptionLocation": "https://api.galaxylifegame.net/swagger/v1/swagger.json", + "lockFileVersion": "1.0.0", + "kiotaVersion": "1.30.0", + "clientClassName": "ApiClient", + "typeAccessModifier": "Public", + "clientNamespaceName": "Phoenix.GalaxyLife.Api", + "language": "CSharp", + "usesBackingStore": false, + "excludeBackwardCompatible": false, + "includeAdditionalData": true, + "disableSSLValidation": false, + "serializers": [ + "Microsoft.Kiota.Serialization.Json.JsonSerializationWriterFactory", + "Microsoft.Kiota.Serialization.Text.TextSerializationWriterFactory", + "Microsoft.Kiota.Serialization.Form.FormSerializationWriterFactory", + "Microsoft.Kiota.Serialization.Multipart.MultipartSerializationWriterFactory" + ], + "deserializers": [ + "Microsoft.Kiota.Serialization.Json.JsonParseNodeFactory", + "Microsoft.Kiota.Serialization.Text.TextParseNodeFactory", + "Microsoft.Kiota.Serialization.Form.FormParseNodeFactory" + ], + "structuredMimeTypes": [ + "application/json", + "text/plain;q=0.9", + "application/x-www-form-urlencoded;q=0.2", + "multipart/form-data;q=0.1" + ], + "includePatterns": [], + "excludePatterns": [], + "disabledValidationRules": [] +} \ No newline at end of file diff --git a/Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs b/Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs new file mode 100644 index 0000000..fede440 --- /dev/null +++ b/Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs @@ -0,0 +1,29 @@ +using Microsoft.Kiota.Abstractions.Authentication; + +namespace Phoenix.ApiWrapper; + +public class KiotaAccessTokenProvider : IAccessTokenProvider +{ + private readonly Func> _acquireTokenAsync; + + public KiotaAccessTokenProvider( + Func> acquireTokenAsync, + IEnumerable? allowedHosts) + { + _acquireTokenAsync = acquireTokenAsync ?? throw new ArgumentNullException(nameof(acquireTokenAsync)); + AllowedHostsValidator = new AllowedHostsValidator(); + if (allowedHosts is not null) + AllowedHostsValidator.AllowedHosts = allowedHosts.ToArray(); + } + + public AllowedHostsValidator AllowedHostsValidator { get; } + + public async Task GetAuthorizationTokenAsync( + Uri uri, + Dictionary? additionalAuthenticationContext = null, + CancellationToken cancellationToken = default) + { + var token = await _acquireTokenAsync(cancellationToken).ConfigureAwait(false); + return token.Value; + } +} diff --git a/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj b/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj new file mode 100644 index 0000000..5ecffed --- /dev/null +++ b/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj @@ -0,0 +1,38 @@ + + + + net10.0 + enable + enable + + + + false + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Phoenix.ApiWrapper/PhoenixApiClient.cs b/Phoenix.ApiWrapper/PhoenixApiClient.cs new file mode 100644 index 0000000..054a719 --- /dev/null +++ b/Phoenix.ApiWrapper/PhoenixApiClient.cs @@ -0,0 +1,340 @@ +using System.Collections.Concurrent; +using System.Net.Http.Headers; +using System.Text.Json; +using Microsoft.Kiota.Abstractions; +using Microsoft.Kiota.Abstractions.Authentication; +using Microsoft.Kiota.Http.HttpClientLibrary; + +namespace Phoenix.ApiWrapper; + +public sealed class PhoenixApiClient +{ + private static readonly JsonSerializerOptions JsonOptions = new(JsonSerializerDefaults.Web); + + private readonly HttpClient _oauthHttp; + private readonly PhoenixApiClientOptions _options; + + private readonly ConcurrentDictionary _tokenCache = new(); + + private Phoenix.GalaxyLife.Api.ApiClient? _galaxyLife; + + public PhoenixApiClient(HttpClient oauthHttpClient, PhoenixApiClientOptions options) + { + _oauthHttp = oauthHttpClient ?? throw new ArgumentNullException(nameof(oauthHttpClient)); + _options = options ?? throw new ArgumentNullException(nameof(options)); + + if (_options.TokenEndpoint is null) + throw new ArgumentException("TokenEndpoint must be configured.", nameof(options)); + if (string.IsNullOrWhiteSpace(_options.ClientId)) + throw new ArgumentException("ClientId must be configured.", nameof(options)); + if (string.IsNullOrWhiteSpace(_options.ClientSecret)) + throw new ArgumentException("ClientSecret must be configured.", nameof(options)); + } + + /// + /// Typed Kiota client for the GalaxyLife API using client-credentials. + /// + public Phoenix.GalaxyLife.Api.ApiClient GalaxyLife => + _galaxyLife ??= new Phoenix.GalaxyLife.Api.ApiClient( + CreateKiotaAdapterForClientCredentials(_options.GalaxyLifeBaseUrl, _options.GalaxyLifeScopes) + ); + + /// + /// Typed Kiota client for the GalaxyLife API using token exchange (on-behalf-of). + /// + public Phoenix.GalaxyLife.Api.ApiClient GalaxyLifeOnBehalfOf(string subjectToken) => + new( + CreateKiotaAdapterOnBehalfOf(_options.GalaxyLifeBaseUrl!, subjectToken, _options.GalaxyLifeScopes, audience: null) + ); + + /// + /// Gets an access token using OAuth2 client credentials grant. + /// Tokens are cached until shortly before expiry. + /// + public Task GetClientCredentialsTokenAsync( + IEnumerable? scopes = null, + CancellationToken cancellationToken = default) + { + var scopeString = NormalizeScopes(scopes ?? _options.DefaultScopes); + var cacheKey = $"cc|{scopeString}"; + return GetOrCreateTokenAsync( + cacheKey, + () => RequestClientCredentialsTokenAsync(scopeString, cancellationToken), + cancellationToken); + } + + /// + /// Exchanges a subject token for a new access token (RFC 8693). + /// Only allowed if EnableTokenExchange is set for this client. + /// + public Task ExchangeOnBehalfOfAsync( + string subjectToken, + IEnumerable? scopes = null, + string? audience = null, + CancellationToken cancellationToken = default) + { + if (!_options.EnableTokenExchange) + throw new InvalidOperationException("Token exchange is not enabled for this client configuration."); + + if (string.IsNullOrWhiteSpace(subjectToken)) + throw new ArgumentException("Subject token must be provided.", nameof(subjectToken)); + + var scopeString = NormalizeScopes(scopes ?? _options.DefaultScopes); + var subjectHash = StableHash(subjectToken); + var cacheKey = $"xchg|{scopeString}|{audience}|{subjectHash}"; + + return GetOrCreateTokenAsync( + cacheKey, + () => RequestTokenExchangeAsync(subjectToken, scopeString, audience, cancellationToken), + cancellationToken); + } + + /// + /// Creates an HttpClient that already has Authorization: Bearer set. + /// You can use this to call any API the token is valid for. + /// + public async Task CreateAuthenticatedHttpClientAsync( + Uri baseAddress, + IEnumerable? scopes = null, + CancellationToken cancellationToken = default) + { + var token = await GetClientCredentialsTokenAsync(scopes, cancellationToken).ConfigureAwait(false); + + var client = new HttpClient + { + BaseAddress = baseAddress + }; + client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Value); + return client; + } + + /// + /// Same as CreateAuthenticatedHttpClientAsync but using token exchange. + /// + public async Task CreateAuthenticatedHttpClientOnBehalfOfAsync( + Uri baseAddress, + string subjectToken, + IEnumerable? scopes = null, + string? audience = null, + CancellationToken cancellationToken = default) + { + var token = await ExchangeOnBehalfOfAsync(subjectToken, scopes, audience, cancellationToken).ConfigureAwait(false); + + var client = new HttpClient + { + BaseAddress = baseAddress + }; + client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Value); + return client; + } + + // -------------------- + // Kiota adapter creation + // -------------------- + + private IRequestAdapter CreateKiotaAdapterForClientCredentials(Uri apiBaseUrl, IEnumerable? scopes) + { + var tokenProvider = new KiotaAccessTokenProvider( + acquireTokenAsync: ct => GetClientCredentialsTokenAsync(scopes, ct), + allowedHosts: GetAllowedHosts(apiBaseUrl)); + + var authProvider = new BaseBearerTokenAuthenticationProvider(tokenProvider); + var adapter = new HttpClientRequestAdapter(authProvider) + { + BaseUrl = apiBaseUrl.ToString().TrimEnd('/') + }; + + return adapter; + } + + private IRequestAdapter CreateKiotaAdapterOnBehalfOf(Uri apiBaseUrl, string subjectToken, IEnumerable? scopes, string? audience) + { + var tokenProvider = new KiotaAccessTokenProvider( + acquireTokenAsync: ct => ExchangeOnBehalfOfAsync(subjectToken, scopes, audience, ct), + allowedHosts: GetAllowedHosts(apiBaseUrl)); + + var authProvider = new BaseBearerTokenAuthenticationProvider(tokenProvider); + var adapter = new HttpClientRequestAdapter(authProvider) + { + BaseUrl = apiBaseUrl.ToString().TrimEnd('/') + }; + + return adapter; + } + + private string[] GetAllowedHosts(Uri apiBaseUrl) => + _options.AllowedHosts is { Length: > 0 } + ? _options.AllowedHosts + : [apiBaseUrl.Host]; + + // -------------------- + // Token plumbing + // -------------------- + + private async Task GetOrCreateTokenAsync( + string cacheKey, + Func> factory, + CancellationToken cancellationToken) + { + if (_tokenCache.TryGetValue(cacheKey, out var cached) && !cached.IsExpired(_options.ExpirySkew)) + return cached.Token; + + // Single-flight per key could be added later (SemaphoreSlim per key). + var token = await factory().ConfigureAwait(false); + _tokenCache[cacheKey] = new CachedToken(token); + return token; + } + + private async Task RequestClientCredentialsTokenAsync(string scopeString, CancellationToken cancellationToken) + { + var form = new Dictionary + { + ["grant_type"] = "client_credentials", + ["client_id"] = _options.ClientId, + ["client_secret"] = _options.ClientSecret, + }; + + if (!string.IsNullOrWhiteSpace(scopeString)) + form["scope"] = scopeString; + + return await RequestTokenAsync(form, cancellationToken).ConfigureAwait(false); + } + + private async Task RequestTokenExchangeAsync( + string subjectToken, + string scopeString, + string? audience, + CancellationToken cancellationToken) + { + var form = new Dictionary + { + ["grant_type"] = "urn:ietf:params:oauth:grant-type:token-exchange", + ["client_id"] = _options.ClientId, + ["client_secret"] = _options.ClientSecret, + ["subject_token"] = subjectToken, + ["subject_token_type"] = _options.SubjectTokenType ?? "urn:ietf:params:oauth:token-type:access_token", + }; + + if (!string.IsNullOrWhiteSpace(scopeString)) + form["scope"] = scopeString; + + if (!string.IsNullOrWhiteSpace(audience)) + form["audience"] = audience; + + if (!string.IsNullOrWhiteSpace(_options.RequestedTokenType)) + form["requested_token_type"] = _options.RequestedTokenType; + + return await RequestTokenAsync(form, cancellationToken).ConfigureAwait(false); + } + + private async Task RequestTokenAsync(Dictionary form, CancellationToken cancellationToken) + { + using var request = new HttpRequestMessage(HttpMethod.Post, _options.TokenEndpoint) + { + Content = new FormUrlEncodedContent(form) + }; + + using var response = await _oauthHttp.SendAsync(request, cancellationToken).ConfigureAwait(false); + var payload = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + + if (!response.IsSuccessStatusCode) + { + throw new HttpRequestException( + $"Token endpoint returned {(int)response.StatusCode} ({response.ReasonPhrase}). Payload: {payload}"); + } + + var token = JsonSerializer.Deserialize(payload, JsonOptions) + ?? throw new InvalidOperationException("Token endpoint returned an empty response."); + + if (string.IsNullOrWhiteSpace(token.AccessToken)) + throw new InvalidOperationException("Token endpoint response did not include access_token."); + + var expiresInSeconds = token.ExpiresIn <= 0 ? _options.FallbackExpiresInSeconds : token.ExpiresIn; + var expiresAt = DateTimeOffset.UtcNow.AddSeconds(expiresInSeconds); + + return new AccessToken(token.AccessToken, expiresAt, token.TokenType ?? "Bearer", token.Scope); + } + + private static string NormalizeScopes(IEnumerable? scopes) + { + if (scopes is null) return string.Empty; + + var list = scopes + .Where(s => !string.IsNullOrWhiteSpace(s)) + .Select(s => s.Trim()) + .Distinct(StringComparer.Ordinal) + .OrderBy(s => s, StringComparer.Ordinal) + .ToArray(); + + return string.Join(' ', list); + } + + private static string StableHash(string value) + { + // Non-cryptographic stable hash to avoid storing full subject tokens in cache keys. + // (If you need stronger privacy guarantees, use SHA-256.) + unchecked + { + int hash = 23; + foreach (var ch in value) + hash = (hash * 31) + ch; + return hash.ToString("X", System.Globalization.CultureInfo.InvariantCulture); + } + } + + // -------------------- + // Models / options + // -------------------- + + public sealed class PhoenixApiClientOptions + { + public Uri? TokenEndpoint { get; init; } + + public string ClientId { get; init; } = ""; + public string ClientSecret { get; init; } = ""; + + /// Default scopes used when none are provided to methods. + public string[] DefaultScopes { get; init; } = []; + + /// Enable RFC 8693 token exchange flows (only for allowed clients). + public bool EnableTokenExchange { get; init; } + + /// Defaults to access token type if not set. + public string? SubjectTokenType { get; init; } + + /// Optional requested_token_type (RFC 8693). + public string? RequestedTokenType { get; init; } + + /// How early we refresh before the token actually expires. + public TimeSpan ExpirySkew { get; init; } = TimeSpan.FromSeconds(60); + + /// If expires_in is missing/invalid, use this. + public int FallbackExpiresInSeconds { get; init; } = 300; + + public string[]? AllowedHosts { get; init; } + public Uri? GalaxyLifeBaseUrl { get; init; } + public string[] GalaxyLifeScopes { get; init; } = []; + } + + public sealed record AccessToken(string Value, DateTimeOffset ExpiresAtUtc, string TokenType, string? Scope); + + private sealed record CachedToken(AccessToken Token) + { + public bool IsExpired(TimeSpan skew) => DateTimeOffset.UtcNow >= Token.ExpiresAtUtc.Subtract(skew); + } + + private sealed class TokenEndpointResponse + { + public string? AccessToken { get; set; } + public int ExpiresIn { get; set; } + public string? TokenType { get; set; } + public string? Scope { get; set; } + + // JSON property names (web defaults will map snake_case if configured accordingly in future, + // but we keep this simple by matching common casing via JsonSerializerDefaults.Web) + public string? access_token { get => AccessToken; set => AccessToken = value; } + public int expires_in { get => ExpiresIn; set => ExpiresIn = value; } + public string? token_type { get => TokenType; set => TokenType = value; } + public string? scope { get => Scope; set => Scope = value; } + } +} \ No newline at end of file diff --git a/dotnet-tools.json b/dotnet-tools.json new file mode 100644 index 0000000..5b4d81b --- /dev/null +++ b/dotnet-tools.json @@ -0,0 +1,13 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "microsoft.openapi.kiota": { + "version": "1.30.0", + "commands": [ + "kiota" + ], + "rollForward": false + } + } +} \ No newline at end of file diff --git a/src/GL.NET.sln b/src/GL.NET.sln deleted file mode 100644 index ae5f723..0000000 --- a/src/GL.NET.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.2.32630.192 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GL.NET", "GL.NET\GL.NET.csproj", "{D15F087E-6950-472D-9F2F-2971EB1B1C53}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsoleApp", "TestConsoleApp\TestConsoleApp.csproj", "{10F09C86-5E06-427E-915C-A2C49D8FF4A4}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D15F087E-6950-472D-9F2F-2971EB1B1C53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D15F087E-6950-472D-9F2F-2971EB1B1C53}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D15F087E-6950-472D-9F2F-2971EB1B1C53}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D15F087E-6950-472D-9F2F-2971EB1B1C53}.Release|Any CPU.Build.0 = Release|Any CPU - {10F09C86-5E06-427E-915C-A2C49D8FF4A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10F09C86-5E06-427E-915C-A2C49D8FF4A4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {10F09C86-5E06-427E-915C-A2C49D8FF4A4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {10F09C86-5E06-427E-915C-A2C49D8FF4A4}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D9DF2F2D-E1B9-4CB6-902F-1BF8A14EA2B8} - EndGlobalSection -EndGlobal diff --git a/src/GL.NET/ApiClient.cs b/src/GL.NET/ApiClient.cs deleted file mode 100644 index 7ebc048..0000000 --- a/src/GL.NET/ApiClient.cs +++ /dev/null @@ -1,533 +0,0 @@ -using GL.NET.Entities; -using Newtonsoft.Json; - -namespace GL.NET; - -public class ApiClient -{ - protected HttpClient _client; - protected const string _baseGlUrl = "https://api.galaxylifegame.net"; - protected const string _baseTelemetryUrl = "https://api.telemetry.galaxylifegame.net/api"; - - public ApiClient(HttpClient client) - { - _client = client; - } - - public event ErrorEventHandler? ErrorThrown; - - public async Task> GetServerStatus() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/status"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) - ?? new List() { new ServerStatus("Api Server", false, 0) };; - } - catch (Exception e) - { - ThrowError(e); - return new List() { new ServerStatus("Api Server", false, 0) }; - } - } - - public async Task GetUserById(string id) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/users/get?id={id}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject(content); - } - catch (Exception e) - { - ThrowError(e); - return null; - } - } - - public async Task GetUserByName(string name) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/users/name?name={name}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject(content); - } - catch (Exception e) - { - ThrowError(e); - return null; - } - } - - public async Task> SearchUserByName(string name) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/users/search?name={name}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task GetUserBySteamId(string id) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/users/steam?steamId={id}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject(content); - } - catch (Exception e) - { - ThrowError(e); - return null; - } - } - - public async Task GetSteamIdByUserId(string id) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/users/platformId?userId={id}"); - var content = await response.Content.ReadAsStringAsync(); - - return content; - } - catch (Exception e) - { - ThrowError(e); - return null; - } - } - - public async Task GetUserStats(string id) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/users/stats?id={id}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject(content); - } - catch (Exception e) - { - ThrowError(e); - return null; - } - } - - public async Task GetAlliance(string name) - { - try - { - name = name.ToLower().Trim(); - var response = await _client.GetAsync($"{_baseGlUrl}/alliances/get?name={name}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject(content); - } - catch (Exception e) - { - ThrowError(e); - return null; - } - } - - public async Task> GetXpLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/xp"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetXpFromAttackLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/xpFromAttack"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetRivalsWonLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/rivalsWon"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetWarpointLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/warpoints"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetAllianceWarpointLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Alliances/warpointLb"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetChipsLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/chips"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetChipsSpentLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/chipsSpent"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetFriendsHelpedLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/friendsHelped"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetGiftsReceivedLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/giftsReceived"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetGiftsSentLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/giftsSent"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetStarsVisitedLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/starsVisited"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetObstaclesRecycledLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/obstaclesRecycled"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetUtilityUsedLeaderboard() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/utilityUsed"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetItemLeaderboard(string sku) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/item?sku={sku}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetAdvancedChipsLb() - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Leaderboard/advChips"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - return new List(); - } - } - - public async Task MakeUserOwnerInAllianceAsync(string allianceId, string userId) - { - try - { - var response = await _client.PostAsync($"{_baseGlUrl}/Alliances/makeUserOwnerInAlliance?allianceId={allianceId}&userId={userId}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - ThrowError(e); - return false; - } - } - - public async Task KickUserFromAllianceAsync(string allianceId, string userId) - { - try - { - var response = await _client.PostAsync($"{_baseGlUrl}/Alliances/removeUserFromAlliance?allianceId={allianceId}&userId={userId}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - ThrowError(e); - return false; - } - } - - public async Task> GetAllianceWarlogs(string allianceId) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/Alliances/getWarlogs?name={allianceId}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task GetChipsBoughtAsync(string userId) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/users/getChipsBought?id={userId}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject(content); - } - catch (Exception e) - { - ThrowError(e); - return 0; - } - } - - public async Task GetChipsSpentAsync(string userId) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/users/getChipsSpent?id={userId}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject(content); - } - catch (Exception e) - { - ThrowError(e); - return 0; - } - } - - public async Task> GetBattlelogTelemetry(string userId) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/telemetry/battlelogs?userId={userId}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetGiftsTelemetry(string userId) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/telemetry/gifts?userId={userId}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task> GetLoginsTelemetry(string userId) - { - try - { - var response = await _client.GetAsync($"{_baseGlUrl}/telemetry/logins?userId={userId}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>(content) ?? new List(); - } - catch (Exception e) - { - ThrowError(e); - return new List(); - } - } - - public async Task>> GetFingerprint(string userId) - { - try - { - var token = _client.DefaultRequestHeaders.GetValues("gl-auth").FirstOrDefault(); - var response = await _client.GetAsync($"{_baseTelemetryUrl}/fingerprint/visits?userId={userId}&key={token}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject>>(content) ?? new Dictionary>(); - } - catch (Exception e) - { - ThrowError(e); - return new Dictionary>(); - } - } - - private void ThrowError(Exception e) - { - ErrorThrown?.Invoke(this, new ErrorEventArgs(e)); - } -} diff --git a/src/GL.NET/AuthorizedGLClient.cs b/src/GL.NET/AuthorizedGLClient.cs deleted file mode 100644 index 66dc296..0000000 --- a/src/GL.NET/AuthorizedGLClient.cs +++ /dev/null @@ -1,206 +0,0 @@ -using GL.NET.Entities; -using Newtonsoft.Json; - -namespace GL.NET; - -public partial class AuthorizedGLClient -{ - private HttpClient _client; - private const string _basePnUrl = "https://api.phoenixnetwork.net"; - private const string _glBetaEntitle = "galaxylife-beta"; - private const string _glEmulateEntitle = "galaxylife-emulate"; - - public AuthorizedGLClient(HttpClient client) - { - _client = client; - } - - public async Task GetPhoenixUserAsync(string userId) - => await GetPhoenixUserAsync(uint.Parse(userId)); - - public async Task GetPhoenixUserAsync(uint userId) - { - try - { - var response = await _client.GetAsync($"{_basePnUrl}/User/get?userId={userId}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject(content); - } - catch (Exception) - { - return null; - } - } - - public async Task GetPhoenixUserByNameAsync(string username) - { - try - { - var response = await _client.GetAsync($"{_basePnUrl}/User/getByName?username={username}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject(content); - } - catch (Exception) - { - return null; - } - } - - public async Task GetFullPhoenixUserAsync(string userId) - => await GetFullPhoenixUserAsync(uint.Parse(userId)); - - public async Task GetFullPhoenixUserAsync(uint userId) - { - try - { - var response = await _client.GetAsync($"{_basePnUrl}/User/getFull?userId={userId}"); - var content = await response.Content.ReadAsStringAsync(); - - return JsonConvert.DeserializeObject(content); - } - catch (Exception) - { - return null; - } - } - - public async Task TryUpdateEmail(uint userId, string email) - { - try - { - var response = await _client.PostAsync($"{_basePnUrl}/User/changeEmail?userId={userId}&email={email}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } - - public async Task TryUpdateUsername(uint userId, string name) - { - try - { - var response = await _client.PostAsync($"{_basePnUrl}/User/changeName?userId={userId}&name={name}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } - - public async Task TryBanUser(string userId, string reason) - => await TryBanUser(uint.Parse(userId), reason); - - public async Task TryBanUser(uint userId, string reason) - { - try - { - var response = await _client.PostAsync($"{_basePnUrl}/User/banUser?userId={userId}&reason={reason}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } - - public async Task TryUnbanUser(string userId) - => await TryUnbanUser(uint.Parse(userId)); - - public async Task TryUnbanUser(uint userId) - { - try - { - var response = await _client.PostAsync($"{_basePnUrl}/User/unbanUser?userId={userId}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } - - public async Task AddGlBeta(uint userId) - { - try - { - var response = await _client.PostAsync($"{_basePnUrl}/User/addEntitle?userId={userId}&entitlement={_glBetaEntitle}", new StringContent("")); - - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } - - public async Task RemoveGlBeta(uint userId) - { - try - { - var response = await _client.PostAsync($"{_basePnUrl}/User/removeEntitle?userId={userId}&entitlement={_glBetaEntitle}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } - - public async Task AddEmulate(uint userId) - { - try - { - var response = await _client.PostAsync($"{_basePnUrl}/User/addEntitle?userId={userId}&entitlement={_glEmulateEntitle}", new StringContent("")); - - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } - - public async Task RemoveEmulate(uint userId) - { - try - { - var response = await _client.PostAsync($"{_basePnUrl}/User/removeEntitle?userId={userId}&entitlement={_glEmulateEntitle}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } - - public async Task GiveRoleAsync(uint userId, PhoenixRole role) - { - try - { - var response = await _client.PostAsync($"{_basePnUrl}/User/giveRole?userId={userId}&role={role}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } - - public async Task DeleteAvatarAsync(uint userId) - { - try - { - var response = await _client.DeleteAsync($"{_basePnUrl}/user/avatar/{userId}"); - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } -} diff --git a/src/GL.NET/BackendClient.cs b/src/GL.NET/BackendClient.cs deleted file mode 100644 index 589ce26..0000000 --- a/src/GL.NET/BackendClient.cs +++ /dev/null @@ -1,250 +0,0 @@ -namespace GL.NET; - -public class BackendClient -{ - private HttpClient _client; - private string _baseUrl = "https://lb.galaxylifeserver.net/api"; - - public BackendClient(HttpClient client, string baseUrl) - { - _client = client; - _baseUrl = baseUrl; - } - - public async Task TryAddChipsToUserAsync(string userId, int amount) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/addChipsFallback?id={userId}&amount={amount}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task TryAddItemToUserAsync(string userId, string itemSku, int amount) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/addItemFallback?id={userId}&itemSku={itemSku}&amount={amount}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task TryAddXpToUserAsync(string userId, int amount) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/addXpFallback?id={userId}&amount={amount}", new StringContent("")); - - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task TryKickUserOfflineAsync(string userId) - { - // if you send request with empty userid, backend will run this for everyone - if (string.IsNullOrEmpty(userId)) - { - return false; - } - - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/kick?id={userId}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task TryResetUserAsync(string userId) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/reset?id={userId}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task UpdateNameFromPhoenixAsync(string userId) - { - try - { - using var response = await _client.PostAsync($"{_baseUrl}/Tasks/updateUsername?id={userId}", null); - return response.IsSuccessStatusCode; - } - catch (Exception) - { - return false; - } - } - - public async Task RenameAllianceAsync(string allianceId, string newName) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/renameAlliance?allianceId={allianceId}&newName={newName}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task EnableMaintenance(uint minutes) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/enableMaintenance?minutes={minutes}", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task ReloadRules() - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/reloadRules", new StringContent("")); - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task GetMaintenanceTime() - { - try - { - var response = await _client.GetAsync($"{_baseUrl}/Tasks/getMaintenanceTimer"); - var content = await response.Content.ReadAsStringAsync(); - - return long.Parse(content); - } - catch (Exception e) - { - return 0; - } - } - - public async Task RunKicker(string id = "") - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/kick?id={id}", new StringContent("")); - - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task ResetPlanetHelps(string id) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/resetPlanetHelps?id={id}", new StringContent("")); - - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task ForceWar(string a, string b) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/forceWar?a={a}&b={b}", new StringContent("")); - - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task ForceStopWar(string a, string b) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/forceStopWar?a={a}&b={b}", new StringContent("")); - - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task CompensateChips(uint amount) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/compensateChips?amount={amount}", new StringContent("")); - - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task CompensateItems(string sku, uint amount) - { - try - { - var response = await _client.PostAsync($"{_baseUrl}/Tasks/compensateItems?sku={sku}&amount={amount}", new StringContent("")); - - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } - - public async Task RestartServer() - { - try - { - var response = await _client.GetAsync($"{_baseUrl}/Tasks/restartStaging"); - - return response.IsSuccessStatusCode; - } - catch (Exception e) - { - return false; - } - } -} diff --git a/src/GL.NET/Entities/Alliance.cs b/src/GL.NET/Entities/Alliance.cs deleted file mode 100644 index dc9e345..0000000 --- a/src/GL.NET/Entities/Alliance.cs +++ /dev/null @@ -1,34 +0,0 @@ -namespace GL.NET.Entities; - -public class Alliance -{ - public string Id { get; set; } - - public string Name { get; set; } - - public string Description { get; set; } - - public Emblem Emblem { get; set; } - - public int AllianceLevel { get; set; } - - public int WarPoints { get; set; } - - public int WarsWon { get; set; } - - public int WarsLost { get; set; } - - public bool InWar { get; set; } - - public string OpponentAllianceId { get; set; } - - public AllianceUser[] Members { get; set; } -} - -public class MinimalAlliance -{ - public string Id { get; set; } - public string Name { get; set; } - public int Warpoints { get; set; } - public int MemberCount { get; set; } -} diff --git a/src/GL.NET/Entities/AllianceUser.cs b/src/GL.NET/Entities/AllianceUser.cs deleted file mode 100644 index d43e60b..0000000 --- a/src/GL.NET/Entities/AllianceUser.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace GL.NET.Entities; - -public class AllianceUser -{ - public string Id { get; set; } - - public string Name { get; set; } - - public string Avatar { get; set; } - - public AllianceRole AllianceRole { get; set; } - - public int TotalWarPoints { get; set; } -} diff --git a/src/GL.NET/Entities/BattleLog.cs b/src/GL.NET/Entities/BattleLog.cs deleted file mode 100644 index 8119889..0000000 --- a/src/GL.NET/Entities/BattleLog.cs +++ /dev/null @@ -1,31 +0,0 @@ -namespace GL.NET.Entities; - -public class BattleLog -{ - public bool IsDefense { get; set; } - - public string OpponentId { get; set; } - - public string PlanetId { get; set; } - - public long CoinsLooted { get; set; } - - public long MineralsLooted { get; set; } - - public long ScoreGained { get; set; } - - public BattleType BattleType { get; set; } - - public DateTime Date { get; set; } -} - -public enum BattleType -{ - Attack = 0, - - Rival = 1, - - RandomTarget = 2, - - RandomTargetBot = 3, -} diff --git a/src/GL.NET/Entities/Emblem.cs b/src/GL.NET/Entities/Emblem.cs deleted file mode 100644 index ec45a6f..0000000 --- a/src/GL.NET/Entities/Emblem.cs +++ /dev/null @@ -1,73 +0,0 @@ -namespace GL.NET.Entities; - -public class Emblem -{ - public Emblem() - { - - } - - public Emblem(string emblemInTextForm) - { - /* Convert GL's emblem in text form to the class */ - var parts = emblemInTextForm.Split(','); - - Shape = (EmblemShape)int.Parse(parts[0]); - Pattern = (EmblemPattern)int.Parse(parts[1]); - Icon = (EmblemIcon)int.Parse(parts[2]); - } - - public EmblemShape Shape { get; set; } - public EmblemPattern Pattern { get; set; } - public EmblemIcon Icon { get; set; } - - public override string ToString() - => $"{(int)Shape},{(int)Pattern},{(int)Icon},"; -} - -public enum EmblemShape -{ - Circle = 0, - Diamond = 1, - Badge = 2, - Cross = 3, - Shield = 4 -} - -public enum EmblemPattern -{ - CrackedBlue = 0, - CrackedRed = 1, - CrackedGreen = 2, - CrackedBlack = 3, - CrackedPink = 4, - Blue = 5, - Red = 6, - Green = 7, - Black = 8, - Pink = 9, - DualBlue = 10, - DualRed = 11, - DualGreen = 12, - DualBlack = 13, - DualPink = 14 -} - -public enum EmblemIcon -{ - Rabbit = 0, - Skull = 1, - Viking = 2, - Octopus = 3, - Devil = 4, - Angel = 5, - Gladiator = 6, - NativeAmerican = 7, - Soldier = 8, - Pilot = 9, - Starlinator = 10, - Fists = 11, - Ufo = 12, - Gun = 13, - Orange = 14 -} diff --git a/src/GL.NET/Entities/Enums/AllianceRole.cs b/src/GL.NET/Entities/Enums/AllianceRole.cs deleted file mode 100644 index 1428141..0000000 --- a/src/GL.NET/Entities/Enums/AllianceRole.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace GL.NET.Entities; - -public enum AllianceRole -{ - REGULAR = 2, - ADMIN = 1, - LEADER = 0 -} diff --git a/src/GL.NET/Entities/Enums/PhoenixRole.cs b/src/GL.NET/Entities/Enums/PhoenixRole.cs deleted file mode 100644 index 603121d..0000000 --- a/src/GL.NET/Entities/Enums/PhoenixRole.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace GL.NET.Entities; - -public enum PhoenixRole -{ - Banned = -1, - User = 0, - Donator = 1, - Operator = 2, - Staff = 3, - Administrator = 4, -} diff --git a/src/GL.NET/Entities/Fingerprint.cs b/src/GL.NET/Entities/Fingerprint.cs deleted file mode 100644 index 5aa407a..0000000 --- a/src/GL.NET/Entities/Fingerprint.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Newtonsoft.Json; - -namespace GL.NET.Entities; - -public class Fingerprint -{ - [JsonProperty("item1")] - public int AmountOfLogins { get; set; } - - [JsonProperty("item2")] - public DateTime LastLogin { get; set; } -} diff --git a/src/GL.NET/Entities/LeaderboardUser.cs b/src/GL.NET/Entities/LeaderboardUser.cs deleted file mode 100644 index 487eb10..0000000 --- a/src/GL.NET/Entities/LeaderboardUser.cs +++ /dev/null @@ -1,83 +0,0 @@ -namespace GL.NET.Entities; - -public class LeaderboardUser -{ - public string Id { get; set; } - public string Name { get; set; } - public string Avatar { get; set; } -} - -public class ExperienceLeaderboardUser : LeaderboardUser -{ - public long Level { get; set; } - public long Experience { get; set; } -} - -public class XpFromAttackLeaderboardUser : LeaderboardUser -{ - public long Level { get; set; } - public long Experience { get; set; } -} - -public class RivalsWonLeaderboardUser : LeaderboardUser -{ - public ulong RivalsWon { get; set; } -} - -public class ChipsLeaderboardUser : LeaderboardUser -{ - public long Chips { get; set; } -} - -public class ChipsSpentLeaderboardUser : LeaderboardUser -{ - public ulong ChipsSpent { get; set; } -} - -public class FriendsHelpedLeaderboardUser : LeaderboardUser -{ - public ulong FriendsHelped { get; set; } -} - -public class GiftsReceivedLeaderboardUser : LeaderboardUser -{ - public ulong GiftsReceived { get; set; } -} - -public class GiftsSentLeaderboardUser : LeaderboardUser -{ - public ulong GiftsSent { get; set; } -} - -public class StarsVisitedLeaderboardUser : LeaderboardUser -{ - public ulong StarsVisited { get; set; } -} - -public class ObstaclesRecycledLeaderboardUser : LeaderboardUser -{ - public ulong ObstaclesRecycled { get; set; } -} - -public class UtilityUsedLeaderboardUser : LeaderboardUser -{ - public ulong UtilityUsed { get; set; } -} - -public class SocialItemLeaderboardUser : LeaderboardUser -{ - public int Quantity { get; set; } -} - -public class AdvancedChipsLeaderboardUser : LeaderboardUser -{ - public long Chips { get; set; } - public long ChipsSpent { get; set; } - public long ChipsPurchased { get; set; } -} - -public class WarpointLeaderboardUser : LeaderboardUser -{ - public long Warpoints { get; set; } - public string AllianceName { get; set; } -} diff --git a/src/GL.NET/Entities/PhoenixUser.cs b/src/GL.NET/Entities/PhoenixUser.cs deleted file mode 100644 index c722a1f..0000000 --- a/src/GL.NET/Entities/PhoenixUser.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace GL.NET.Entities; - -public class PhoenixUser -{ - public uint UserId { get; set; } - - public string? SteamId { get; set; } - - public string UserName { get; set; } - - public PhoenixRole Role { get; set; } - - public DateTime? Created { get; set; } -} - -public class FullPhoenixUser : PhoenixUser -{ - public string Email { get; set; } - - public string? DiscordId { get; set; } - - public string? BanReason { get; set; } -} diff --git a/src/GL.NET/Entities/Planet.cs b/src/GL.NET/Entities/Planet.cs deleted file mode 100644 index 97565b9..0000000 --- a/src/GL.NET/Entities/Planet.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace GL.NET.Entities; - -public class Planet -{ - public string OwnerId { get; set; } - - public int HQLevel { get; set; } -} diff --git a/src/GL.NET/Entities/ServerStatus.cs b/src/GL.NET/Entities/ServerStatus.cs deleted file mode 100644 index 034c68a..0000000 --- a/src/GL.NET/Entities/ServerStatus.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace GL.NET.Entities; - -public class ServerStatus -{ - public ServerStatus(string name, bool isOnline, int ping) - { - Name = name; - IsOnline = isOnline; - Ping = ping; - } - - public string Name { get; set; } - - public bool IsOnline { get; set; } - - public int Ping { get; set; } -} diff --git a/src/GL.NET/Entities/TokenResponse.cs b/src/GL.NET/Entities/TokenResponse.cs deleted file mode 100644 index a9341c8..0000000 --- a/src/GL.NET/Entities/TokenResponse.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Newtonsoft.Json; - -namespace GL.NET.Entities; - -public class TokenResponse -{ - [JsonProperty("access_token")] - public string AccessToken { get; set; } - - [JsonProperty("expires_in")] - public int ExpiresIn { get; set; } - - [JsonProperty("token_type")] - public string TokenType { get; set; } -} diff --git a/src/GL.NET/Entities/User.cs b/src/GL.NET/Entities/User.cs deleted file mode 100644 index aecf862..0000000 --- a/src/GL.NET/Entities/User.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace GL.NET.Entities; - -public class User -{ - public string Id { get; set; } - - public string Name { get; set; } - - public string Avatar { get; set; } - - public bool Online { get; set; } - - public long Level { get; set; } - - public long Experience { get; set; } - - public string AllianceId { get; set; } - - public Planet[] Planets { get; set; } -} diff --git a/src/GL.NET/Entities/UserGifts.cs b/src/GL.NET/Entities/UserGifts.cs deleted file mode 100644 index 98b48d5..0000000 --- a/src/GL.NET/Entities/UserGifts.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace GL.NET.Entities; - -public class Gift -{ - public string FromUserId { get; set; } - - public string Sku { get; set; } -} diff --git a/src/GL.NET/Entities/UserLogins.cs b/src/GL.NET/Entities/UserLogins.cs deleted file mode 100644 index c167b87..0000000 --- a/src/GL.NET/Entities/UserLogins.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace GL.NET.Entities; - -public class Login -{ - public ulong CommandsSinceLastLogin { get; set; } - - public DateTime Time { get; set; } -} diff --git a/src/GL.NET/Entities/UserStats.cs b/src/GL.NET/Entities/UserStats.cs deleted file mode 100644 index 2217918..0000000 --- a/src/GL.NET/Entities/UserStats.cs +++ /dev/null @@ -1,49 +0,0 @@ -namespace GL.NET.Entities -{ - public class UserStats - { - public ulong TotalPlayTimeInMs { get; set; } - - public ulong NpcsAttacked { get; set; } - - public ulong PlayersAttacked { get; set; } - - public ulong TimesAttacked { get; set; } - - public ulong StarbasesDestroyed { get; set; } - - public ulong BuildingsDestroyed { get; set; } - - public ulong DamageDoneInAttacks { get; set; } - - public ulong ObstaclesRecycled { get; set; } - - public ulong CoinsSpent { get; set; } - - public ulong MineralsSpent { get; set; } - - public ulong ChipsSpent { get; set; } - - public ulong CoinsFromAttacks { get; set; } - - public ulong MineralsFromAttacks { get; set; } - - public ulong ScoreFromAttacks { get; set; } - - public ulong UtilityUsed { get; set; } - - public ulong NukesUsed { get; set; } - - public ulong TroopsTrained { get; set; } - - public ulong TroopSizesDonated { get; set; } - - public ulong FriendsHelped { get; set; } - - public ulong GiftsReceived { get; set; } - - public ulong GiftsSent { get; set; } - - public ulong ColoniesMoved { get; set; } - } -} diff --git a/src/GL.NET/Entities/WarSummary.cs b/src/GL.NET/Entities/WarSummary.cs deleted file mode 100644 index eea6a48..0000000 --- a/src/GL.NET/Entities/WarSummary.cs +++ /dev/null @@ -1,48 +0,0 @@ -using Newtonsoft.Json; - -namespace GL.NET.Entities; - -public class WarSummary -{ - public WarSummary() { } - - public WarSummary(string enemyId, Emblem enemyLogo, string enemyName, int enemyScore, int selfScore, long startTime, long endTime, string winnerAllianceId, bool knockout) - { - EnemyAllianceId = enemyId; - EnemyAllianceLogo = enemyLogo.ToString(); - EnemyAllianceName = enemyName; - EnemyAllianceWarScore = enemyScore; - SelfAllianceWarScore = selfScore; - WarStartTime = startTime; - WarEndTime = endTime; - WinnerId = winnerAllianceId; - OnKnockout = knockout; - } - - [JsonProperty("enemyAllianceId")] - public string EnemyAllianceId { get; set; } - - [JsonProperty("enemyAllianceLogo")] - public string EnemyAllianceLogo { get; set; } - - [JsonProperty("enemyAllianceName")] - public string EnemyAllianceName { get; set; } - - [JsonProperty("enemyAllianceWarScore")] - public int EnemyAllianceWarScore { get; set; } - - [JsonProperty("myAllianceWarScore")] - public int SelfAllianceWarScore { get; set; } - - [JsonProperty("warStartTime")] - public long WarStartTime { get; set; } - - [JsonProperty("warEndTime")] - public long WarEndTime { get; set; } - - [JsonProperty("onKnockout")] - public bool OnKnockout { get; set; } - - [JsonProperty("winnerId")] - public string WinnerId { get; set; } -} diff --git a/src/GL.NET/Exceptions/GLException.cs b/src/GL.NET/Exceptions/GLException.cs deleted file mode 100644 index 26c799c..0000000 --- a/src/GL.NET/Exceptions/GLException.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace GL.NET.Exceptions; - -public class GLException : Exception -{ - public GLException() : base() { } - public GLException(string message) : base(message) { } -} diff --git a/src/GL.NET/Exceptions/NoAuthException.cs b/src/GL.NET/Exceptions/NoAuthException.cs deleted file mode 100644 index a73028c..0000000 --- a/src/GL.NET/Exceptions/NoAuthException.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace GL.NET.Exceptions; - -public class NoAuthException : GLException -{ - public override string Message => "You are currently not authorized! Please make an authorized client by providing a ClientId and a ClientSecret for this endpoint."; -} diff --git a/src/GL.NET/GL.NET.csproj b/src/GL.NET/GL.NET.csproj deleted file mode 100644 index ff836c6..0000000 --- a/src/GL.NET/GL.NET.csproj +++ /dev/null @@ -1,32 +0,0 @@ - - - net7.0 - enable - enable - 0.4.15 - svr333 - Galaxy Life - GL.Net - A .NET Api Wrapper for Phoenix and Galaxy Life Endpoints - LICENSE - - https://github.com/Galaxy-Life/GL.NET - true - 512x512.png - - GL, Galaxy Life - - - - True - - - - True - - - - - - - diff --git a/src/GL.NET/GLClient.cs b/src/GL.NET/GLClient.cs deleted file mode 100644 index 8ec1308..0000000 --- a/src/GL.NET/GLClient.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System.Net.Http.Headers; -using System.Timers; -using GL.NET.Entities; -using GL.NET.Exceptions; -using Newtonsoft.Json; -using Timer = System.Timers.Timer; - -namespace GL.NET; - -public class GLClient -{ - protected HttpClient _client; - public event ErrorEventHandler? ErrorThrown; - protected const string _baseGlUrl = "https://api.galaxylifegame.net"; - - // Authorization - private string _clientId = ""; - private string _clientSecret = ""; - private string _backendToken = ""; - private string _accessToken = ""; - private Timer _tokenTimer = new Timer(6 * 60 * 60 * 1000); - - public GLClient(string clientId, string clientSecret, string backendToken, int timeout = 30) - { - _clientId = clientId; - _clientSecret = clientSecret; - _backendToken = backendToken; - - _client = new HttpClient() { Timeout = TimeSpan.FromSeconds(timeout) }; - RefreshToken().GetAwaiter().GetResult(); - - _tokenTimer.Start(); - _tokenTimer.Elapsed += OnTimerElapsed; - } - - public async Task RefreshToken() - { - if (string.IsNullOrEmpty(_clientId) || string.IsNullOrEmpty(_clientSecret)) - { - _accessToken = ""; - ErrorThrown?.Invoke(this, new ErrorEventArgs(new GLException($"Client Id and/or Client Secret cannot be empty/null!"))); - return; - } - - try - { - var data = new[] - { - new KeyValuePair("client_id", _clientId), - new KeyValuePair("client_secret", _clientSecret), - new KeyValuePair("grant_type", "client_credentials"), - }; - - var result = await _client.PostAsync("https://accounts.phoenixnetwork.net/oauth/token", - new FormUrlEncodedContent(data)); - - var tokenResponse = JsonConvert.DeserializeObject(await result.Content.ReadAsStringAsync()); - - _accessToken = tokenResponse?.AccessToken ?? ""; - - _client = new HttpClient() { Timeout = TimeSpan.FromSeconds(30) }; - _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _accessToken); - _client.DefaultRequestHeaders.Add("gl-auth", _backendToken); - - Api = new ApiClient(_client); - Phoenix = new AuthorizedGLClient(_client); - Production = new BackendClient(_client, "https://lb.galaxylifeserver.net/api"); - Staging = new BackendClient(_client, "https://master.staging.galaxylifegame.net/api"); - } - catch (Exception e) - { - _accessToken = ""; - ErrorThrown?.Invoke(this, new ErrorEventArgs(e)); - } - } - - public ApiClient Api { get; set; } - - public AuthorizedGLClient Phoenix { get; set; } - - public BackendClient Production { get; set; } - - public BackendClient Staging { get; set; } - - private async void OnTimerElapsed(object? sender, ElapsedEventArgs e) - { - await RefreshToken(); - } -} diff --git a/src/TestConsoleApp/Program.cs b/src/TestConsoleApp/Program.cs deleted file mode 100644 index a153253..0000000 --- a/src/TestConsoleApp/Program.cs +++ /dev/null @@ -1,55 +0,0 @@ -using GL.NET; -using GL.NET.Entities; - -var creds = Environment.GetEnvironmentVariable("PhoenixApiCred").Split(';'); -var client = new GLClient(creds[0], creds[1], creds[2]); - -client.ErrorThrown += OnErrorThrown; - -void OnErrorThrown(object sender, ErrorEventArgs e) -{ - var ex = e.GetException(); - System.Console.WriteLine(ex.Message); -} - -// Galaxy Life Endpoints -var a = await client.Api.GetServerStatus(); - -var b = await client.Api.GetUserById("36271"); -var c = await client.Api.GetUserByName("svr333"); -var d = await client.Api.SearchUserByName("svr"); -var e = await client.Api.GetUserBySteamId("76561198240675026"); -var f = await client.Api.GetUserStats("36271"); - -var g = await client.Api.GetAlliance("covenant imperium"); - -var h = await client.Api.GetXpLeaderboard(); -var i = await client.Api.GetXpFromAttackLeaderboard(); -var j = await client.Api.GetRivalsWonLeaderboard(); - -var k = await client.Api.GetAllianceWarlogs("unity"); -var l = await client.Api.GetChipsBoughtAsync("36271"); - -var m = await client.Api.GetBattlelogTelemetry("2"); -var n = await client.Api.GetGiftsTelemetry("2"); -var o = await client.Api.GetLoginsTelemetry("2"); -var p = await client.Api.GetFingerprint("2"); - -// Phoenix Endpoints -var one = await client.Phoenix.GetPhoenixUserAsync(36271); -var two = await client.Phoenix.GetPhoenixUserByNameAsync("svr333"); - -// Auth Phoenix Endpoints -var three = await client.Phoenix.GetFullPhoenixUserAsync(36271); -var four = await client.Phoenix.RemoveGlBeta(36271); -var five = await client.Phoenix.AddGlBeta(36271); -var six = await client.Phoenix.GiveRoleAsync(36271, PhoenixRole.Staff); -//var seven = await client.Phoenix.TryBanUser(12421, "Api test ban"); -//var seven2 = await client.Phoenix.TryUnbanUser(315100); -// var seven3 = await client.Phoenix.DeleteAvatarAsync(47990); - -// Backend endpoints -var eight = await client.Production.TryAddChipsToUserAsync("36271", 1); -var nine = await client.Production.TryAddItemToUserAsync("36271", "7000", 1); - -Console.WriteLine("Done"); diff --git a/src/TestConsoleApp/TestConsoleApp.csproj b/src/TestConsoleApp/TestConsoleApp.csproj deleted file mode 100644 index 9ec24e4..0000000 --- a/src/TestConsoleApp/TestConsoleApp.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - Exe - net7.0 - enable - enable - - - - - - - From b399828f7147541bcec0038abbc0939c7068ca69 Mon Sep 17 00:00:00 2001 From: Matthias Hoste <42743095+matthias-hoste@users.noreply.github.com> Date: Sun, 8 Feb 2026 13:35:46 +0100 Subject: [PATCH 02/10] feat: add example, feat: add proper OBO --- .gitignore | 355 +----------------- .../.idea.Phoenix.ApiWrapper/.idea/.gitignore | 13 - .idea/.idea.Phoenix.ApiWrapper/.idea/.name | 1 + .../.idea/projectSettingsUpdater.xml | 8 + .idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml | 6 - .../.idea/workspace.xml | 8 + Example/Example.csproj | 16 + Example/Program.cs | 19 + Phoenix.ApiWrapper.sln | 6 + .../Generated/GalaxyLife/.kiota.log | 2 + Phoenix.ApiWrapper/PhoenixApiClient.cs | 33 +- 11 files changed, 84 insertions(+), 383 deletions(-) delete mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/.name create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/projectSettingsUpdater.xml delete mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml create mode 100644 .idea/.idea.Phoenix.ApiWrapper/.idea/workspace.xml create mode 100644 Example/Example.csproj create mode 100644 Example/Program.cs create mode 100644 Phoenix.ApiWrapper/Generated/GalaxyLife/.kiota.log diff --git a/.gitignore b/.gitignore index dfcfd56..add57be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,350 +1,5 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ +bin/ +obj/ +/packages/ +riderModule.iml +/_ReSharper.Caches/ \ No newline at end of file diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore b/.idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore deleted file mode 100644 index 983d86b..0000000 --- a/.idea/.idea.Phoenix.ApiWrapper/.idea/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Rider ignored files -/projectSettingsUpdater.xml -/.idea.Phoenix.ApiWrapper.iml -/modules.xml -/contentModel.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/.name b/.idea/.idea.Phoenix.ApiWrapper/.idea/.name new file mode 100644 index 0000000..055b26d --- /dev/null +++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/.name @@ -0,0 +1 @@ +Phoenix.ApiWrapper \ No newline at end of file diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/projectSettingsUpdater.xml b/.idea/.idea.Phoenix.ApiWrapper/.idea/projectSettingsUpdater.xml new file mode 100644 index 0000000..ef20cb0 --- /dev/null +++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/projectSettingsUpdater.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml b/.idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/.idea.Phoenix.ApiWrapper/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/.idea.Phoenix.ApiWrapper/.idea/workspace.xml b/.idea/.idea.Phoenix.ApiWrapper/.idea/workspace.xml new file mode 100644 index 0000000..5d7833b --- /dev/null +++ b/.idea/.idea.Phoenix.ApiWrapper/.idea/workspace.xml @@ -0,0 +1,8 @@ + + + { + "keyToString": { + "settings.editor.selected.configurable": "preferences.pluginManager" + } +} + \ No newline at end of file diff --git a/Example/Example.csproj b/Example/Example.csproj new file mode 100644 index 0000000..5b324f0 --- /dev/null +++ b/Example/Example.csproj @@ -0,0 +1,16 @@ + + + + Exe + net10.0 + enable + enable + true + true + + + + + + + diff --git a/Example/Program.cs b/Example/Program.cs new file mode 100644 index 0000000..98df4e1 --- /dev/null +++ b/Example/Program.cs @@ -0,0 +1,19 @@ +// See https://aka.ms/new-console-template for more information + +using Phoenix.ApiWrapper; + +var phoenix = new PhoenixApiClient( + new HttpClient(), + new PhoenixApiClient.PhoenixApiClientOptions + { + TokenEndpoint = new Uri("https://accounts.phoenixnetwork.net/oauth/token"), + ClientId = "your-client-id", + ClientSecret = "your-client-secret", + GalaxyLifeBaseUrl = new Uri("https://api.galaxylifegame.net"), + GalaxyLifeScopes = [], + }); + +var alliances = await phoenix.GalaxyLife.Alliances.GetPath.GetAsync(); + +var exchanged = await phoenix.ExchangeOnBehalfOfAsync("", ""); + diff --git a/Phoenix.ApiWrapper.sln b/Phoenix.ApiWrapper.sln index 5cf45dd..a6ffa24 100644 --- a/Phoenix.ApiWrapper.sln +++ b/Phoenix.ApiWrapper.sln @@ -2,6 +2,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Phoenix.ApiWrapper", "Phoenix.ApiWrapper\Phoenix.ApiWrapper.csproj", "{3C9F0468-0B32-45A2-82E0-53D75B28D00C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example", "Example\Example.csproj", "{67E01460-3F3E-447E-99DE-90B91A3A607F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -12,5 +14,9 @@ Global {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Debug|Any CPU.Build.0 = Debug|Any CPU {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Release|Any CPU.ActiveCfg = Release|Any CPU {3C9F0468-0B32-45A2-82E0-53D75B28D00C}.Release|Any CPU.Build.0 = Release|Any CPU + {67E01460-3F3E-447E-99DE-90B91A3A607F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67E01460-3F3E-447E-99DE-90B91A3A607F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67E01460-3F3E-447E-99DE-90B91A3A607F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67E01460-3F3E-447E-99DE-90B91A3A607F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/Phoenix.ApiWrapper/Generated/GalaxyLife/.kiota.log b/Phoenix.ApiWrapper/Generated/GalaxyLife/.kiota.log new file mode 100644 index 0000000..9b3570d --- /dev/null +++ b/Phoenix.ApiWrapper/Generated/GalaxyLife/.kiota.log @@ -0,0 +1,2 @@ +Warning: KiotaBuilder OpenAPI warning: #/ - A servers entry (v3) or host + basePath + schemes properties (v2) was not present in the OpenAPI description. The root URL will need to be set manually with the request adapter. +Warning: KiotaBuilder No server url found in the OpenAPI document. The base url will need to be set when using the client. diff --git a/Phoenix.ApiWrapper/PhoenixApiClient.cs b/Phoenix.ApiWrapper/PhoenixApiClient.cs index 054a719..b8952b3 100644 --- a/Phoenix.ApiWrapper/PhoenixApiClient.cs +++ b/Phoenix.ApiWrapper/PhoenixApiClient.cs @@ -42,9 +42,9 @@ public PhoenixApiClient(HttpClient oauthHttpClient, PhoenixApiClientOptions opti /// /// Typed Kiota client for the GalaxyLife API using token exchange (on-behalf-of). /// - public Phoenix.GalaxyLife.Api.ApiClient GalaxyLifeOnBehalfOf(string subjectToken) => + public Phoenix.GalaxyLife.Api.ApiClient GalaxyLifeOnBehalfOf(string subjectId, string subjectProvider) => new( - CreateKiotaAdapterOnBehalfOf(_options.GalaxyLifeBaseUrl!, subjectToken, _options.GalaxyLifeScopes, audience: null) + CreateKiotaAdapterOnBehalfOf(_options.GalaxyLifeBaseUrl!, subjectId, subjectProvider, _options.GalaxyLifeScopes, audience: null) ); /// @@ -68,7 +68,8 @@ public Task GetClientCredentialsTokenAsync( /// Only allowed if EnableTokenExchange is set for this client. /// public Task ExchangeOnBehalfOfAsync( - string subjectToken, + string subjectId, + string subjectProvider, IEnumerable? scopes = null, string? audience = null, CancellationToken cancellationToken = default) @@ -76,16 +77,16 @@ public Task ExchangeOnBehalfOfAsync( if (!_options.EnableTokenExchange) throw new InvalidOperationException("Token exchange is not enabled for this client configuration."); - if (string.IsNullOrWhiteSpace(subjectToken)) - throw new ArgumentException("Subject token must be provided.", nameof(subjectToken)); + if (string.IsNullOrWhiteSpace(subjectId)) + throw new ArgumentException("Subject id must be provided.", nameof(subjectId)); var scopeString = NormalizeScopes(scopes ?? _options.DefaultScopes); - var subjectHash = StableHash(subjectToken); + var subjectHash = StableHash(subjectId); var cacheKey = $"xchg|{scopeString}|{audience}|{subjectHash}"; return GetOrCreateTokenAsync( cacheKey, - () => RequestTokenExchangeAsync(subjectToken, scopeString, audience, cancellationToken), + () => RequestTokenExchangeAsync(subjectId, subjectProvider, scopeString, audience, cancellationToken), cancellationToken); } @@ -113,12 +114,13 @@ public async Task CreateAuthenticatedHttpClientAsync( /// public async Task CreateAuthenticatedHttpClientOnBehalfOfAsync( Uri baseAddress, - string subjectToken, + string subjectId, + string subjectProvider, IEnumerable? scopes = null, string? audience = null, CancellationToken cancellationToken = default) { - var token = await ExchangeOnBehalfOfAsync(subjectToken, scopes, audience, cancellationToken).ConfigureAwait(false); + var token = await ExchangeOnBehalfOfAsync(subjectId, subjectProvider, scopes, audience, cancellationToken).ConfigureAwait(false); var client = new HttpClient { @@ -147,10 +149,10 @@ private IRequestAdapter CreateKiotaAdapterForClientCredentials(Uri apiBaseUrl, I return adapter; } - private IRequestAdapter CreateKiotaAdapterOnBehalfOf(Uri apiBaseUrl, string subjectToken, IEnumerable? scopes, string? audience) + private IRequestAdapter CreateKiotaAdapterOnBehalfOf(Uri apiBaseUrl, string subjectId, string subjectProvider, IEnumerable? scopes, string? audience) { var tokenProvider = new KiotaAccessTokenProvider( - acquireTokenAsync: ct => ExchangeOnBehalfOfAsync(subjectToken, scopes, audience, ct), + acquireTokenAsync: ct => ExchangeOnBehalfOfAsync(subjectId, subjectProvider, scopes, audience, ct), allowedHosts: GetAllowedHosts(apiBaseUrl)); var authProvider = new BaseBearerTokenAuthenticationProvider(tokenProvider); @@ -201,7 +203,8 @@ private async Task RequestClientCredentialsTokenAsync(string scopeS } private async Task RequestTokenExchangeAsync( - string subjectToken, + string subjectId, + string subjectProvider, string scopeString, string? audience, CancellationToken cancellationToken) @@ -211,8 +214,10 @@ private async Task RequestTokenExchangeAsync( ["grant_type"] = "urn:ietf:params:oauth:grant-type:token-exchange", ["client_id"] = _options.ClientId, ["client_secret"] = _options.ClientSecret, - ["subject_token"] = subjectToken, - ["subject_token_type"] = _options.SubjectTokenType ?? "urn:ietf:params:oauth:token-type:access_token", + ["subject_token"] = (await GetClientCredentialsTokenAsync()).Value, + ["subject_token_type"] = _options.SubjectTokenType ?? "access_token", + ["subject_id"] = subjectId, + ["subject_provider"] = subjectProvider, }; if (!string.IsNullOrWhiteSpace(scopeString)) From 0bf973023903113bd03d0e502f9f0fc5b7b62246 Mon Sep 17 00:00:00 2001 From: svr333 Date: Tue, 24 Feb 2026 14:32:44 +0100 Subject: [PATCH 03/10] Refactor and add Nuget package info --- .../17.14.1561.44479/CodeChunks.db | Bin 0 -> 303104 bytes .../17.14.1561.44479/SemanticSymbols.db | Bin 0 -> 151552 bytes .../17.14.1584.41681/CodeChunks.db | Bin 0 -> 307200 bytes .../17.14.1584.41681/SemanticSymbols.db | Bin 0 -> 151552 bytes .../DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 110738 bytes ...a616b0ca-f98c-4b41-b9fe-c818f5da36dd.vsidx | Bin 0 -> 93282 bytes .vs/Phoenix.ApiWrapper/v17/.futdcache.v2 | Bin 0 -> 302 bytes .vs/Phoenix.ApiWrapper/v17/.suo | Bin 0 -> 44544 bytes .../v17/DocumentLayout.backup.json | 71 ++++++++++++++++++ .../v17/DocumentLayout.json | 70 +++++++++++++++++ .../phoenix.apiwrapper.metadata.v9.bin | Bin 0 -> 1933 bytes .../phoenix.apiwrapper.projects.v9.bin | Bin 0 -> 59625 bytes .../phoenix.apiwrapper.strings.v9.bin | Bin 0 -> 156111 bytes {Example => src/Example}/Example.csproj | 0 {Example => src/Example}/Program.cs | 0 .../Phoenix.ApiWrapper.sln | 0 .../Generated/GalaxyLife/.kiota.log | 0 .../Alliances/AlliancesRequestBuilder.cs | 0 .../Alliances/Get/GetRequestBuilder.cs | 0 .../Alliances/Search/SearchRequestBuilder.cs | 0 .../WarpointLb/WarpointLbRequestBuilder.cs | 0 .../Generated/GalaxyLife/ApiClient.cs | 0 .../BaseTemplateRequestBuilder.cs | 0 .../BaseTemplate/Get/GetRequestBuilder.cs | 0 .../Leaderboard/LeaderboardRequestBuilder.cs | 0 .../RivalsWon/RivalsWonRequestBuilder.cs | 0 .../Warpoints/WarpointsRequestBuilder.cs | 0 .../Leaderboard/Xp/XpRequestBuilder.cs | 0 .../XpFromAttackRequestBuilder.cs | 0 .../GetMaintenanceStatusRequestBuilder.cs | 0 .../GetMaintenanceTimeRequestBuilder.cs | 0 .../GalaxyLife/Status/StatusRequestBuilder.cs | 0 .../Users/Count/CountRequestBuilder.cs | 0 .../GalaxyLife/Users/Get/GetRequestBuilder.cs | 0 .../Users/Name/NameRequestBuilder.cs | 0 .../PlatformIdRequestBuilder.cs | 0 .../Users/Search/SearchRequestBuilder.cs | 0 .../Users/Stats/StatsRequestBuilder.cs | 0 .../Users/Steam/SteamRequestBuilder.cs | 0 .../GalaxyLife/Users/UsersRequestBuilder.cs | 0 .../Generated/GalaxyLife/kiota-lock.json | 0 .../KiotaAccessTokenProvider.cs | 0 .../Phoenix.ApiWrapper.csproj | 21 ++++-- .../Phoenix.ApiWrapper}/PhoenixApiClient.cs | 0 44 files changed, 155 insertions(+), 7 deletions(-) create mode 100644 .vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/CodeChunks.db create mode 100644 .vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/SemanticSymbols.db create mode 100644 .vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/CodeChunks.db create mode 100644 .vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/SemanticSymbols.db create mode 100644 .vs/Phoenix.ApiWrapper/DesignTimeBuild/.dtbcache.v2 create mode 100644 .vs/Phoenix.ApiWrapper/FileContentIndex/a616b0ca-f98c-4b41-b9fe-c818f5da36dd.vsidx create mode 100644 .vs/Phoenix.ApiWrapper/v17/.futdcache.v2 create mode 100644 .vs/Phoenix.ApiWrapper/v17/.suo create mode 100644 .vs/Phoenix.ApiWrapper/v17/DocumentLayout.backup.json create mode 100644 .vs/Phoenix.ApiWrapper/v17/DocumentLayout.json create mode 100644 .vs/ProjectEvaluation/phoenix.apiwrapper.metadata.v9.bin create mode 100644 .vs/ProjectEvaluation/phoenix.apiwrapper.projects.v9.bin create mode 100644 .vs/ProjectEvaluation/phoenix.apiwrapper.strings.v9.bin rename {Example => src/Example}/Example.csproj (100%) rename {Example => src/Example}/Program.cs (100%) rename Phoenix.ApiWrapper.sln => src/Phoenix.ApiWrapper.sln (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/.kiota.log (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Alliances/AlliancesRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Alliances/Get/GetRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Alliances/Search/SearchRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Alliances/WarpointLb/WarpointLbRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/ApiClient.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/BaseTemplate/BaseTemplateRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/BaseTemplate/Get/GetRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Leaderboard/LeaderboardRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Leaderboard/RivalsWon/RivalsWonRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Leaderboard/Warpoints/WarpointsRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Leaderboard/Xp/XpRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Leaderboard/XpFromAttack/XpFromAttackRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Status/GetMaintenanceStatus/GetMaintenanceStatusRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Status/GetMaintenanceTime/GetMaintenanceTimeRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Status/StatusRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Users/Count/CountRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Users/Get/GetRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Users/Name/NameRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Users/PlatformIdNamespace/PlatformIdRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Users/Search/SearchRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Users/Stats/StatsRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Users/Steam/SteamRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/Users/UsersRequestBuilder.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Generated/GalaxyLife/kiota-lock.json (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/KiotaAccessTokenProvider.cs (100%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/Phoenix.ApiWrapper.csproj (61%) rename {Phoenix.ApiWrapper => src/Phoenix.ApiWrapper}/PhoenixApiClient.cs (100%) diff --git a/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/CodeChunks.db b/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/CodeChunks.db new file mode 100644 index 0000000000000000000000000000000000000000..b579fc20295a3b0aade48feba8d11e58c8a2c643 GIT binary patch literal 303104 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 Bc{Tt5 literal 0 HcmV?d00001 diff --git a/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/SemanticSymbols.db b/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/SemanticSymbols.db new file mode 100644 index 0000000000000000000000000000000000000000..a53b4358f261aaa515f768816a0ea832992b6439 GIT binary patch literal 151552 zcmeFa31D1R^*?^!eRtme=FOI^P21^`rsEzx_Z&xatJe5Tl=j@zhk}+oBe;xkU;C~4JZTuJbpZk+? zz%Z%78u$LfcK*a1@lh83ne&D4?cv$xwZ`9#S7}db&FbgX70Sm$-w1_pd*W|G0uvIL zkidu}u)$HP>guG6v#FNObl<^FII%r_*;ICMAv|UEwzVsFtWEA%xoYFuWZ|7T*_O`v z9c@SE(=!e3d0}<(yc(_l;%sk6dwaTfM{oP~qg^eT&Zh3ZbZ^#&bB%3lTEBknw&ajH z$(8GNptNc8_O;t~B)4o%`VZO0s^I+?dCOZ+V+@v zWppSrYtlfK9-bM$PQc8XwHwz$d@q5S0LcJ%^OI%R8_ZpOn@3{({A8xH&Eu2OGJHyw zTD5GMLr)^OJ`g zlDnFAoV#V`j^ws2yPDRxAychdzFcyrl%}CA)7sZ@MNZ@c(%2J}n`NU^CyBk5R9`yT*OO{ZpPAg3&Gz)2xp3j- zmtWrK`>@7LZ~H>R-?%T^)j2bL1fA2J>LlGJe0x&eZ8?|_?C}uv`7~uS2h!cpNf0%I z97J!bYX*_F>QF~#c0ors$nY!lCbRo6B}{d8W-jkbuG_JFiAUj~o}Nr^HrbWwO()ya z-Ra&`XR_~5OCQ?mZckzo*}4zF2&f*w1Hu}zs#B2pJ-|QJ8Sie*Y zI;v^&nza`u>&w=zC(jl1Uwv{;Q7<*PLV?);?fM~T*JN4`bwQF%Z9Yb|9L9Xbp~wpE z%um*@MHh8vw`WtmS!hC#-I(rf&+e;lxNcfVt*WV!ZYcC*K4PVmDS($i@0!}`OF4$* z%AGs5G;PMSo7QgL5h!DQ0Y$loa<|qU>g+sve&M)NpS)n@w$4G^_GnrY24ksW%bJKlnj0t-k5~zOCv{0xmtmc%2uO6@&qkWl@m3y zD${oK1kF&D6E#!V&t*yWE1jq*Uja5iGxL2sRFa$0*?pO|?H%pisqCTN^x$p?`fA;l zZEKs>Z>9lkPF@8XlH1mL+1t{@aB?9RKnGoO4Yo1(r({z z1+%;K!9(fp)`7`hkQIY0Bsa$kZqDgO*U#@uA8c@&CADhG6zP?w*JciFF6Dz-88DTX zXlVnCls2N|VEf3~)W%d_c2_SZvO7Au(mS)QWxL&%?VKEz26WIuu2ij_A~COj0wJUh zWiwuWPmaqyi*t~SNw!84ZCcn%&R+?PIDZZQJ)Gss>@VAM*m~gc{K4PI^O-p1BG>4`hf$sBoMg&W}@D1Pz?8X&DKNr$Bn zbN7rlMU4kKGTBsPXQn+TiVNbvJME?7U3(-&OO#v(4v6^6vo2E5ZvD$`H)tR2_Vi}< z`!v7vx2`gk^hq0MecG5#L2X(xsou8c3w!V>>O6PS6cDoX~w zF>#4n5I65+61OYW+XJtX?Q0%@N{}`AWRNvraRa1mY$*VX$zqd0mOS3l^8KH8Eha&! z0SV)-);U@k>e&3kjzQ-Fxxr~r#ky~WxAUOpdu-` zH8GI2WW1&1ci7g>RF>Y4Ggklw7Rnc>n049`y#-x zee7`*Ou&Kx*%b~XZH^(Tk`p^$(zH-(rc04fT`LSS#@#Fm=K}?B5jp#9$bZ)u3S|RL z+E%t=X4|)e_FphvKHTBYX!|VS>KH>@B|E^IH7=m7v&Q{>nQoVxkoUNc4}Q0oo6Ebp z0U|2KoAp)LYuk~=Bo|wAW!Dw%bPcqu9dBBK0TUA0l)@}4-A$_$JMM=-=Si9ctv+=>j3k(9 zI1zfuKb76g?D@*Q&aIASUKF~TpBsKtST(+;e^+}-v7`^Oo25$YI`fC}&+OyI2JJ%S zcjEV=Q@)HprFW{oQEx&MWAx`LqTiAJ<%_ndeTYJXrF@N)_XNB7yasZOClHq z%DDaNlPZhytGy~$6aDe=mPODf!!GtJT}$*&9&bwWRx|usui~WGaKW@Xzrf2wMHZCU zEZk`?RYb*`mvOg7^e=g-?TvJw+VA}QB9YcKCtNtjT7AF>O>qP&ie+h{t z=`J&WQMU=V{-six8;J(L?ov*QlK3_=+(J0yhDHBN9%V;5Dh{%n!c38?6g|RieW{`z zDLI83s`5#h6XvaT04idgcL{foKF&+v{7Yi`Qa^Wo%$(;_|o^p`~QOX z82PvUd8laDYU2IBx5-*0mx=fP`Jd)Yy#F8iW2K4r|0n*c_r&{u@0Z9g;TLoh@Bb&> z|NF20#^=YF6Yu|r`@;Cd`~MMtZ++tZ|M>oDdgA?m$?q>sy#L3K#Oe3{y7N`q+o*N^ z>ip69o%2iQC(hH(@h&M93>*^vb7@}1 zu8!=!oxPnw;vAE%iEdM)y{tc~uwUyz@f`n@o(8w8I>Mx7%W{ND{pVNg$Us`b`n9Rs zKMxYel9eg8zgHE02m6}+Y3ajynJRNuw$iy~X9aDp_KxE^)SL1O+dDHYsm?Rc%zalU zeoJYKXo6(O@_J-qTd@NCR^|DH#H9Z1qvY56N|pWQO6x=HZ~y-6p55SX zuLQqSrsVr~cLjQPW#7^6)?BK8L^JMXKhfVRJ*Vf&{(ZV^esVSa@~soU$@7#DKZyia z6?v|_Uc9)7EA1vtKT@e3l&1U}GIe$-u6hzMa+)x~HEI{cxBgQHJEg?Q+$$wy9ERAzbhiCMu-lJ#vz6K}x zwd_x~W>*x`(H#Tlmt5jGF?6TKsLKYMc)nne`^XmuyG!|kLG|JvVmDUQ&#Cy9l{i6J#;-aw9=*oLDMd5tY>F^kb1vupj1b4h$1*cHV7LH}#)g z&ij=a1MIu1!k1#0=$9TW_vG049Ehc{NHoPIs4_%YG&;0dc{V-2va%epW!SXdQe|IK zXGkIN0Ursuc!PufTFuB{Q0S9>IB@S@PI@V?>7HlgneqCp zX@KAyGui=7-(0C}l@bHD{^h)s90J;PSn0xr14BTH=q=|61G85aMU_ukN&|a)apkg} z|Ck1$6(Dl;;)jb+%fE_>yDj-A?2+Qib4KIu-K8qfy9<`(JigS$PdNV@mykbmbJOLw!$`w#!oggMGRz>7(h0 zt`PM@e7d)GqRwD1otgX(ar2P)V`He_2;I(Z4K=dAh_oPdX3bcj^Cvp~RsP0Yu}u*z z>;|E*pNMvu(Abm50u79S4mAuC{?U2zsj9q&UCV#PzAw5s%=M~eIXv1+mtGk?ls?$b zudL$lRlmolX?vR`pxd-5H%%C}v#=UZ_J?tu>UQB;2c5LD+u7u-a+W&t?0f7t+OM&%vJcv6d$+yGUS%(}=jnIruh*~DFW2|$m*`vd z)%sF>o<247+0a9w2SRTRy*_lUJ7hhO6@L-G5>Jb7iqDIWiT8-NiCe{W;)pmPE*0mC zwc-r1Kui}ELYMz8|4#m~{FwX|`TxlOCBIvKtNeQTI{B#FC0{1*kk`x0r}Qg_mHo;k%2s8ya=Ox> z)GCg`Lw^YUEcE@*SHo`&zdn3j_-ME*oC@y@H(7hE?bdp0nYGZGX;oRK`8M+n=Bvyr z&5YSA*#W#{`wYp-!82z|W&oe|;ta{i!JnHW=@#1OJbKy<{4bK0yHVXLslkm?zscS& zDZ!0XFYS^-Ie5|%Nff|x0H5;gd=9HTJt8GxtjA9qhM3X4Z3|SF_&)ndG_RPWI~{Gqr-xW4{VAlYhmN z?3Y1i(ofiX*mFUq`dofH`$dqcc#*GVKMyjopYR9R&w@;39iPd58f46m$^XNC5@ht5 z(i7~*K}OvxMcK1KCiHvu9Q#p_;dk=K*bf6n`6Z{bXL2y#!k!Lb>Cscz4|4FG_3Wt} zytJ7;88jprr(eaM2r}&Fr{B%K?`LdznzV&I?muGlCzi3tf*X>MzRtcE++cTI#=Z*} z`eyGElh}6x_;j(HecOLvQuxE{R`#tRV_nA{V&4oh#!~he`$mw_rz7(}K}J*9Q|#+O zMtMXM>}x?L^gi}2_SGOG-p0Pkz7k~QSD}F~2O0jbbu;@?E>mweurK^hy6@t zqFZ`9`;bpSW&H3u_Q4#iu4n%lREmBPN7;TL$V47zKVk0=GWJ`f53u(I8S4$~Pwc%x zMt7y3viAfTZMRgz9t<+dB6cr(Ajrr+XP;;9_A{}Hjnc>1{XPM)#MblJeE}SQaszu; zP$_m7kFx&=GSM3(jlDC-gl9>gWA6wuwkFx^-XNnt18Lq9WVClmjqL3~MmY#mep`?c z4*NR0+s`%{X(t37hP$_x~m)To_Oyqtj@SB5--77u7?g%p0 zLH0a*Q;^Zq(lhM#Afv68;_QtJwnb6RX(k1332X z)$Ep_QZys|g}pAwL~dk{vzvpAeUWq@du@=hn%QsIO+iNAE2~(YAfv5d zkFx$CqfBFWFgM6RH$Ta)A>O!DotQ3dIUc~V``P1H2e9+7wCAcEth4)$1+aClbo-S7 zY#wBfUJ=0h1?;w?0j$nsA3YMl;ufj)@&J~T((J=NtVN%eEd??h9b$LH3dM02ZgP@9*{DDbf3+o#_B}{vjD{0c`zU+S8hY z*R%Ut0$9IZx;+)Z+WXm~mj$qLjJ;=10E-&-^-FztYUJK*~y8>ALDf{FFK3p5kO51h@u=8E^j~xMQJt6Jc zo`Ywz`?duz4C?mt16aG6J-Ri3l@xo|mH-w8`{HIFPEh-s0+`z07{Jv2h8&Fc&kJB` zzbSyJ{c{7D+Fu{Q)c!gj4x2Z!yVnM=zJ`5vO#myOkhIkS9J+^nXH@`;ZuaMu0W6=! z{(MdV^A`Q9X9uwKY2(leA2t%L(w)l<)xQ^X7BY^cb>GtUX zti6^!nhap&GWM=%0W5U(#i>4Ak+@fS=M-P$6?l7Fn**1vpB&Vn_oI_?FkXJv1Tej; ztPWs$kyjPK^aiXlfa%3iMF7)_l|%s33y-)D>+~ui=A+f|Iv^T=*wOb^7F^P4=iOUb z0H%F)Z)E|Pw!yuX1z_4N_Er{vX}i^1SpcT(N^fNW*xTI;u+sjU=EI!!u+#viO(Abx zf#nVDws`9bz}}WfP=|Ic1!* zd6zKd=jA<4gHszmC0u7Ou#;FDUZDS%e!uoh?FZUoZI;@hHY=}Et_a-|x=s9txI=zc z{ti~h6}*8@7JpSfq1+bwlXy1t&CvTo3FpJ+BCA6232dxBXuGozmN-+xZs0RC+*aw_fXD+HAa9YBHMjr}WS2 zi=B6eFASe;KV)aEwc<hYTyLs&(l3zI} z*IzB4T8bp*mb-DyLb+8cbtX<3E{>b>WGT?Ut0&9Lq%!Jv)iC#tS@@AsPWi4Z%v@0| zFDXgQ(Q-GARLYB~ts%$fUQYD~7yC>eUM62Tb=E8)$poo%Pr3x=NMedMtZ-|B*A6upib{3GnV;J(b4|8u@A+_fhX13B(WeD0b z%)QOTNSVL{Wf<91z{tj7h}|&Ez4HobZz{~3OHY*}XqbEJrpRYY1wZo}tWIl(y}KqN z*A3F&)ruTN!7AFr91!YC$_-F<&af?>O~zd2WpDwJE9T3WkZTxBY`$R7Xu6z;YHB;n zPnOlo+e^L2sQgOpm-`n0reLJLvSn%#sRuVKEh_l`K7#+(7wb(oPxv_G01# zlA-sQi-xbdkVI2P_=WfzsY3_8HN8NWt0eEMCK!_EIr7Xxt(r@kQrJd=*G4Xk z*PKBu)=!epC_~5WQ{@8#nzgZIMEze^(37)<>8+W=+?!F@dD9Cs$y#}NS&F6&cXO&Y zpDGdlrHmd=(c}t=Rs*#;VDemfw^Zsoe`sNdI!`JPLd`IYRu6Nps*vx>!c2uX=PJQU zqTG%6Xe>CEV>p@vA|te7yp0~1gNBD;%^v2SRmiDXm@!J)t6s8HBMfC;^sB?%Q^NA} z0{sekHs(nh%klxsmP@vP1?i*_I@FN!2oui7X$d zhX8+Tue}C;crElw`hLNKVi6*zt>J?6-nKQ|kYof=Tf;TZ4|S~J2}wrmk~Jb!f!nBs zBL@&@Z4H+>KX_;j52LhY4Ockt%dX*3Nk;I#HM~-i5yNi{ui`w7rnn>{EZZ8cOY*@( zD0U`WT$80k^GFg$ zj!N9F}_2z6mgs;_}VC?qKQJ`!CrskvNB@M#h$Rd0H#hgKo{hdMZq33NGqEPNDh z$pkp~DBO_=h~uO1xIuz~-0;cQ!gnY@ zO?Qk>F?mwsv#QZMq~4rY3MegoBKRmgA`=iGmIZv8C)Nv zs|%kfDGR(JK<$%B8i)!$nbfbcrybx>78WQc5eG#g0?K1h7*AV@9>;e!pxr6MlWXBM z5f}xmG->jg4s~HIWD7OLRpUt*6*^%78O}k6Crngc9~z9&1LyHQ~Xqkj!dWzucbcgu&Nw zL*qt-8*q|YC<>^CP31o1B=9dT)Bm8@E8~?ief)}k$t1`*S5i9F257`pI0ki^6I zC_F3^5XDFFl+bew6$-B~2rrpyVNF;#-0@z^d)O$rCOjC{72;}5j=frG zLjf??2RLtxaXyaOm;v%OW~CU8Co?)y+X$cA<*zU z7m^FSaR>T`MmDGnuG48`N!N3QT%@!Yc2>tD8jnP1#O;Lhp#cSs3fJkxP~YX}z}v_O z3vYRz(I~hkJlG_$rLzv7X7U+HJ`JN?X9L$lf#)aREXm!eF0>B?29LNxAJF&Y_k<_? z>7F`t#Jn~%KD(MvlckL1`3(3iFz8rXk3YqpU-xNxK`siL^w-$rj>*g z(~r4aPw*sMBk3L3uj4}FB0^(Wd)o5YEOr`bzdOX0n%q!QODMWht10Q;8{<<=K3(H= z)il`mc3GY}8U@#c2TO8Ks@LI@O+GcrCqvg{9$G-Au(x+LNp@cbf~dpKW;lr+IH5X~ z3wUJ&CM>nqdm}x~MjE&t3RocT2NmsrKdSLe3qxBi86hTEaMr@}*AOZ`vgdobP@}R? z;ZZ%+3(5?X87PA#!JfQEMHpTdWRT-6)c}ngGJb>Uc!Ow?PXRwMKFj3w8lP9qXF-iK zbGe!b# z2d@?e2beKNE06f1#~}miSI4sxjaSILLgO_RUKRpAd=AOED`k0u2}Tvzlz&ZlFhtw6 znrQ9Ggt(~5O~z_TTaNZPyvF3UNm!NKmrkJw!zp?YI)To_xG|qb5?H$k1rtf%0r#S3 z4B^S22C8{fw*`V0fvl-xVEQuEpy5`bF&jYO<6v*xGc&&n{hAmJp&~I)w=_PZn$!!k zI1-dma7}nH=a*;BAqgMtHav|kye7O7%)L{stI0R@86MY#*MwIB*5(nTEtrNxg|Fbb z8J#y$QH&$;qD*p;LPy)S3VPd|35Fb3`@CuVxC%t)m8a@Ti1yfFtj-`Su z1m+Bs2_Z~xP+AMphgKquSWQ?D_01zY#&4Y+US;x0Ng7Q1py(pdb>A*XS>Q2zyYQy* zfnu4mFkvd>DLqX>2Rbkn4639@IkPHw+;ch|o#+ir1-wabq4E_@aj63po-k-E^=HfZ zni#C$0#h+Q)8w-?KDV0B#2g^Z71R4vkTm+z^C3PN2L+u20mzr9dSPLhO#8Nj&PO+9 zVbjnIe9#^Z!sn3xKGN6@%Ii43Ij=>?PxkCxO}CF?iWIKnVU33)5RZJ6#x19gI~sQ) zWR~5nhUZlZuZh6V^kC72Nzs%fpCmL#ji{O(i77SlN;_u7;*;Zgy`n@Cw!JP9F(RAQ zs2z((^cLHyb}TzpJ6X4uMI*IpbWbE2iD-%vH;hPRU2SYmM2#dIdz~HEoewa>U!D@= zt-1vk=?M>#0R?xl3Xl0~a$37T;w@+a&G-yK^jg2>QG&2`XLyLQ>3#!%sy&FRL=D5) z$86_dtm3K9tUO2y{*ub&=o&14sNnDT4DyoWD4~cYcjMfFC+f zINx!;?tIaC#Q8LK0Y2!w$9b3YcIPe5ZO+ZktDS!5m~+_aarQfH&ZW+U&Nh6ff1PuV zbEb2e)9B1`W;nG@r4w-sM}+?o{!{q*@GrwZ2|pcvJp8TjSHq8nKO6pJ_@VFz!ViSs z8NNGwNBGw8P2uaq*MzSKXT#m$ec_gHbNGVr*6?}ZHQ^QESKyZi^TV^l$?&9bA{-8D zVQ&A;{-ga{`xo}J_EYxv>~Gj#wm)xw#{RhdVf%gd{r0`~UH0wvE%puewf5Ea5xdv! zwD;PV*%#S6?9KMMIBDQ4`*eGeJ=dOPPqnM7`LF+;5oz`2e+wnX8S6i-ih1F+uT50Q2YnQdvYO+@0_w%RW_Y$+MX;!rrwG2x( z|7QNd{55_#|Frp-`3>_+<|F2(%!kbPoA;adm~X*v>~Au!Gp{x;H+#$uv&FpF++l7q z*Wna}SD1^)~qnYrfM?d&&KmOPvKePN#i@l*NjJv|6_dI_>l1)<3EhMak9cK z#%qjz<4PlIbQyb%J;sH``NnxT8{jNsiP31(8%d+ah#96K^uOzW)PJM@On*jyT>qy2 zWt`jaY5gPm2lRLA_v&}*x9P9duh)<3NA!a@ccE2p)_3Zg_4WEW`WgBuIDcW5K1HvD zf=v8PNMJ$&6B3w^z=Q<;-<5#qkH{=6i+%@*Ci=sEVk0p`zvbUEk*K2I@Dm*gqRwkb z;-X*m3l+aGj2a1Z;*AtZ`$vwqTt1T}k+R0#JV5;Wa|#1?J_i6h)@Bvr!gLXs42 zCz7~u4qIHxdwWAri=Cmw)d9KeyA*?LY!aZ1?g`X@%g2qnwlO;&d z*lB)pDv}1_o`M8CEcTN{NYEV%k)W|gBxr1bpUg*s#^(9STqNj~20xjDWB~%$BY}8k z`$-)VkUI+r8k>m(jm_|r=}6F6(od!#L3d2`lPO5*gLlLQiUc-&87NM;K+iUcwv`$IzZH(j`7e`t*C4~>!iAtC!iV`P6w$o`@O#7!HTy=tM zD0Y$+tjlqv*SQiUKxQUuwNBFKy?1X)pqAS0?0WJ6VgOvn&qK}?VVse|oUF34~~!nYeTn+oAu4H=Ch$YvZtCgTXQm})@=Q!U6|LW0bt zT9CC&7i27|AX||InTil(DY_s-F$CF(D#%P!K~|CwWF!lOZzH~m_!i#PIj zugq(WkLbUci2s)@8)hjVN^m0n-@u7H1(5^iOvL|d|CfY2oQVH75&sY8Q2U++UQsB<;&6<`CB+7~0+B;Y#DblO z|2Gl;FNFxfL(UQ%P`JS-1Wv^N!>MT5l|caDiTHn=9iHx#iy}#W>3?PXKcB4=Ib-QH zN$ElDNjm=Dp!I)}bus6L@E^lR>_6E@tS9lkb{XGNUxx3W-)*cxw7aRrm-ZFC*m0 zc*G=LmFi3HNO$$%fU5M%8QUA&_N94F@p~AlfBh&qwcb}{XDcb5%D*$CSd?!%9h^>? zlJC<^q;_6-g(V6g?kky9m|!eDQuERQN*vM5eZ@mjL%`uo_akXr#FS04c;`HxX?zeQ1i zN?;mI@LzY`DM0U@y^`Dt{&A^Klo>DvX-{Ehun-!{-ztA6^aZI;-7rc0o<-4&^zs$U ziqXAzada>v?&N<3C-OB?Cd4L%{?npZOv7<9nr`Y^M7>l~5Y71I@&8k|Jh+;1jUHJ}`cI@ZLNqlGMc8XEe(l}@+mPUkk1o|q?nJH~j z?vW7s%II1E94VYENa~KuO1Vq}1818z4nPBdzKs3T*q|GqiH-Bn)WrpnvrpWVAI8JKs?+DHZ&K9z z*fkX1OI$D)t)*w?`gkOS6`Z|a0ES*zs2nks*RmTZRG7H10qwTeji%i~^(chJ!;3=e zt#!)v5hN9L-L^Vkg((XD8%T0IlKqhPM; z)=w@oDJ@fM{h`V}fN--25%-d&aBI?gQ-?Z-o_xPzMT1*CBTpKcqT4W9($2239;&nu zux?B#JG7cA&GUzUxoSX3FQvGVpNMJIE2zeu$J(ZI~soC4r$vl2fGK-7wYxisV z*_9NO@8zK{Iomom4NA9sd9W1ZQl_lRm(y*fy;}K;MR5Z4a#hOD9imggegS&7YSj2e zq*{EzqS%Dx@sDQ2&rX3vT3ho@prTBKhhVrF6zgOZRTDP5vBI5Kd8S3N6m988EW*~q z{jl%pXKC*Uh50gNL+EX6z2@N8G`GrED}O~4Kuh1IJtX}|o2G`8W1$yA-Qqd?V&qeD zlE2AY_`6{}#QGg&^_k7yFxGrH)!mzEUXy7()Rpee_BC(q&9vhH*shN5_U84e&eV~k z8$0%6L+4I zIr72^7ssEo{`kowXn?e`BpsGQ%-u8I6g3{`$YfKEotgHWD9}Y0y3<}N-nB^q=29Lm)ma8KHBZ+&FuGSe&=uXhu9(LlQz!!R4}J$zObh!0*1D~REA3E zaB)!~n^#I!uMLd5#t`EM>im_h*cb2HkvWj=hS?qNz{}uVw_Wkrk6g=vWtd}#w4|x} zZh*qpG}EQDRb0{A;3C>7>sL<>Im3F5D;ghi!=aPm#(dd$aUq*aM28&cED+S7fuObH zEggTkKn`_Cki-&2WqMM*$6cU;)=mEsT1ztE7nY|t5eB`J$D7_lA5#FAChO?y`>wR$ z6FSD5DsPln(3xpH(73-Z)9v|Pat;V*%=#pVR!oXN! zZZU|a!c3W-+SzqPMo+blx2y(MpE~*l!@g}3dKAQ{RA`RH@joV{L%`oFOW8zY`V+?VX?0_Nuz(u$xjLPGU)$jIl zqcUT18=TR26H#dEWu1{b-5ZF40BYCwyQD;H|6B3w^z=Q-QBrt{&aHq#G4_z|eYb<}Nuod5C+MDU^ zYHFh$tG=F8E4Doc%8CYSf6a^?tl9)tL_d3)B?CZSv8@z$N;_#W6u z4A+2^aepB=n14v2s3UxWKKP&;t~!|nrSQ&^EWM19UIBs<6(DHbx1aNV*?&jeTFaEfmdUgN42@@$Iy$F7z641|J?aJb6#{l&p+$`6MIYjW884pGfhbJ zhcEBTk`$68MUqrW((qk=iW7;*oz9n}mDgN@eU-D&a-~>=nUuR3K}#uyF944C1I~4B zgyx7m=HiD31FfOu!UlCoG9<~A5Yj-hB`GXPsLEs?3nEOSo#j9zm}{Y}GsU9T&JGu` z!VyQkI}3nfh9wEoz2}vrT zr}v{?xJA&j4=uHdMQuG9w-1p)K~Eb16@inH5LuwF4^c^Fyr2aD`nubC03bxAR{-)d z9dri)Ef3H$AiO8j0l)y^nF9bg2v`G?&6UFdlIaAc(}ss4pPh-SXjp_E*k8 zGY_HHdOF-*qMd}=OSGoD380YjND$2zk-h=ZN zy@;wRcXu2CfS8`y4AKa=^d3Px)b2hMAV6pjH68=E`=|!~I$Dt;W+}R@7lB66ZFB(}bQP9=a)_#Nzm8E_C3dPzz z;2sZRdbXudouZObyySkW;(ZX`+TBa>KxZM~C?e##Jrr2B(>=gLesp+zZwgUX@ob%- zu-V=1sE(M@F@$smE1m#JTpeCqRf=Sawr$`CMLOc$qc(!0PLp_pAj1KG_^6OyHtn{H z5Mp%TKh%YTXh`5tr+dW9QIqXnpks*mD4L`y^pRUqt>DRzf7^!}h(w#-2P{aZd$G*- zr`;<_5}j#~5Yp+H)>Lahdc<#(;Eoz=;iT% z2xv$<1q;WgN>H?E;KMgIgO8^V$Gw2LveW|^A`~wLlJ#TmQh<0o?bQ_&z!!fA)$Hg& zVA^aJ6hnvb%QeW6f&_!Ey^sVwAxqsTOhS4T4jcVqRwB5qCmxDAi$3rS(9^eLgb@v; zQ+;kXLOXl4D4?$YK_C`cIs{7mXwogD22knN47jAW5K!1X>_z#dC$HoXSz8*&ry-Ux z^=P{n1sAb%E6L8Y?lG<-a0`NUr$8&|Qy@mD*bKy2S2+SIALu{>KECdh+sPsQDd;qy zm8AiP(akM{>sAr_7z!BJU%RkklJ|d-E`$Y%LrHU5z(aym-?ziP9KnGP9&)=p8bF3k zl=SWeVuXOsxcfg=lmC7}LR$dzufUa#pLlj54 zKL|t2Gh~A>r`epMRQH1Lge148I#F*x!O|&oDY__ws$Tye@bAg{fNn2|VkRQpleX;T zA&o~Z9wECu=sDcBehM*;d+nY8pst=@qY4MORY?Mb61IB^3}=THJNPU?&Z;$qVlQN} zl=pz`6uldt8U!g15$Zx6+nWa26foTj#15x-oCZxOkT)LWJSSy4f;zB{{}tJ$$~VU93YJ!5}zS>0>PPJE5yk@ zKE?2L?Ql?b6upCL7(WNbKDdaz)NDPF<_G;wa(2)oG98@PtWx&?w)CK%x?AuRh6Vhp z0h-?i;wZQ_ap(`Eqz|^{sWd{~!yiy@VQhu<6Wxey52f!yB?ubQJ;3csZ=9u}kZ>aG zdm5!$C5gBPLwq~0Mu$RheRv45vuSuWJoWdSZ!ZbSAFatuuL|^rYC#_8OmF%E;gQ#* zamM#&7}5_ON~3cFHM0T8y+GGN%=Ds1@ht4Sy+DO1f;l+u;8O*UOrp#|G!S?LPuZxO zb37mRWZ)@j2l<<>6zGRaVV1I=@<;nXEOnS9_rcxwa8vU{YMY+mq5lUi36~ydvYN!yN^$$kpXizzk5-uhuZY55<}6EplTXo_XUF4Vz*al z5yd^IOsWn6^*~Ud1ry0bE&BnZJD{Cio|A%~vdL9-X3-*X2*syC18yoy!!=QeX!7Yc z2u`o0-anEevM>j4r8$#~VDJ`64)eIH0_7u#tJLUGYRS_XdJysBk@dV1I7ak%JPrz{ zOMD)@fd{~JfVhXIUvSA7&iW3ZRo{_a;aL>kxSE=3m|Yzo(R?(VaTBe#r zTrm`*HBFyo7^VY^;iRpiNwlcjgci8bf>CK0hHh#z(PBbHG&0k)5}Fp*Of{yf2|I%J zQLiGZ;+BTrg`>JQ$x>CcZ`uY3GjW-TJbQP{@bcAqoCYfgVIkv-JxlP4tW0hEx zKGM_g%?~Pvf;hyLp6KncR@VF^S_IBDUz-Wo`8 zk25)rMUb})Dp=*9ishqShl)F}PH6R(0t1s^()oVOZZX}=W&qH1u`LS#`1b)nCJNrb z3IGc+e7zO`ln5&_09rr@k;2}&$|EJ@Ud`Y&=&yi|%dX8W6xX2EcA~>unShSLQ*WT} z^Cn?F)=&;>h_Lnz_?S$8Xdxm1v=K_#=+~L|{dcPCYjwdvpi137K@r22B2!!*NR3nWP z?J3w;9oOMcBV0!X-0DoPpj(If-19J=$a_+)?k@N`)OAyoW>W5@ zLcI$(Y#768nYA76Lu1qh^z=SFrOzh6cwjX*Cws0^;ifyuGdUVBc9F9fSodL7Gnb15 zjkf|z9$d+>V=)K6LA^g102koQtfP^_jG$SIn^p7(&2pv&zJew?ZX20;!2)tOcdCem zPH(Y9k6;xuopX0F$H+WrRe25%k-B+Tx0=UAu*mF6I~;K%36)MR#>Y8zCk=)KD?$!# zBct&;GgnFHNs}iv5=w`=-fNmX@Yy*em=KWf!WsnZB9tVq)48(38wC~bilKY}kfkAu zU5QuJ(P%}T1USMgAeIV~8)Pem0;ZUJCbA}< ziVsE{OkEwXQ(&4hM--TX%oG~++U9a2L40DeNdp$pU;$g>%Y)0c-m-^e<4tzb4O|Y< zAO#H|iMd+~7v+X0kHTxhD?#_5GvIHAxzd7qaGk<-is1^#fmfNNc4amK8fXzQ1ImWg zD6a03q5A@)Wm5~}QBU&NCv#;1SKKM2YaK95v>)Pip#YfU1Dwx~dO;62vA&}VtbNBXqFb|^{ zGR#UQfEJTv90bs0Q{i!gcG6&1_~dJ1&hLv8(>Qz}hXQ~U1k3!dcwjxA5d0^}dT;81w?1;ILa+F>+6EqqC~{ln9@x(Wh49 zvo+qR@%aYbg6BdVIImf#={d4#r+ZyU?r+Hc7j1qpPrX3nTGBM^*6gB@0W1GB**&Qq z!u5`1Ym5ZFn+#&m4q2Lqg||rt&an%KtqX6Xk@`cyGK@N=u#;&buJ9^s{XqG1!YHg< zi;c;O5dKr@HC3quZTdiqEn#CrY_rbp4Zmz}3ZVmRP&!!zVQvcmK3zbRkn0gHC88)VX zyN<`P1dQ-FGz;s-6h<96;f*60Y%q?{a{BC?FTxbU|6u1Ca>v;0|LylFDnL>|_ z;ihDo+hSl}ayM7QUiY48YqE{zDOfzuD6u=))ziS$5KTL1hUHzmQ`mjLQ0tBEgMiD( zabV!DQAx7~HZ;i@c$2r_MM&YkCR}eFZOn!6n@xx&WERYQP()^P0XYxs8D#6ZhEc#> z=sQZGLB1p13~i%sg-Q1BsyKi;CdYHLuj4dBG(7-R73LTuFG-O6-Y{ zxTW+$QZ>SSR?heMgD`EyQilf{)a{Pv1hB%8X`NAB;bkMdN~2FiF23y zsl^g0P5*-u#UUM`&A?ohYHAWT<>|ZM3Xw`su8N6#5ryy{G+Xz%0U!+2Dqs+t zg2$ZUcn!m%JTVls4J3k^FDk;E+1~)I@zf5Q7rehPJnvh0_21{kymD;oL3PVr^`g6l z?G(e+T#k~1Z^dYi1gkep31(tFqt#$%1+Q;4RkN_|V^peUtaf(9m{GIFh|IGa3}f1i z*yJkJwd>-xJ4cN>lg-F%t1_yY$fqqMJjV$ewWhW3oOnc=u34&SyM5T)sWB_!H8WIy zgD4y~%!CMmj6S_crLL}v9UzZO<;E&Dkh5B}Whi}MF= z(A>qXpIYY7k21y9yQ}PJI1A);V}BONMS0R_PUSX?k~H&$Dr1+qJT7KbOa zg;Vj9sKE!roucWF;w+HraXAa*!aROYGK-7wYt5SWLZ!BHT+RY%+l7-a7AzPz3uMpK zp*-Di6vo$iyBwk_WQ+`&PVM8Le-A*cJS z#pyot)W`;$?(^MJr~7Qrn~iVLwPj4VOtJOHD!UUF{lwT?^tL={zD19gv~#Mgk5pQ- z$KImP&s&sl(X~YueOxmtVA1JuvFNRN{JupO;n&`+>E~2xH;;=&AKe0_3yy>${9WY~ zzKmuo`>K?`T1u+mY@Z=tq%3RZZg}$$t*96!auKZ(k6OYgIM`<>@=+Q8rXj|k82I-7 zh>U-9wTBr0#v#U^7^U%V$jj0<{zMroFH<~@#(!R(G~f6~OWL>@e^cK0eB)1?T;o4C zkKZ@`BK+fP{OgApe>sIOquB+x7JuwEb~Tow_dhhd7)mgh7MXS z;K8jq*-WTkk-GE^HTqvHeGU8UFiec5a}KShzL{2VaOKNmtMI2Yg|Ol-QY$QV9=k*N zgrteoDne^UeT9Htu$PPW!k*B<*`c5E&97CqV$Nrs9pR6Mm)QShFR|WY{?q)7 zx!kx>|CQdQ{Yu-WendT@{8%|7bZ=;exL2rhr@VmQ%`e2h|IJb@yDPW;AKUcmE6~Tm z8JYe-Ry}keHE+_anU&_jahb*T97SI&Su(ILZLco%+r3g{`XvedDNDbA-KLkiUEbA( zj)3I?l&&*koa)?!`ZY_P$v#>d=V(0RIhTX;#f$TLPJ$nDG+1$o_+2byv$u&`q*}4& za9(zvr3`7o7t7!_{4)8vg!~Tn4ml~!#=HJQXy!`#K3uSJ)&@U9N23fL?r^`9*1yEZ zq8qT5et2nop%r~vx_EgO)D*6zwIS2#8>BZzZcrl+us1~-r0U|6a{JJ`gHFoT%FLU~ z6x++H?Egemhv{R#mhR1y=1-?bNt$(CmG!qu>%iErr4Q!40O^6dkaS@1?${%maS_(i z4~)xNx+jm{_d-SZwO?!cb(PvT$Hfb|i43%E)20D8bbKT>FvM5~+lcb^qySMql0&5`@n$fNAe$Z9EB>`D&g?bWl2dbNzt zC{t{oUuAy*u4L)hyORBR(tKAkO46)5tL#{%<&M28>ByV1?@CAy2D_5SHKPZvv!IKVE6yS*iVed|b)ob`TKEUp)fkkr_gPizub>$_Hnt7g)-J>?1?$wp8Wv z9%bR)A=J$q6Y9hnGeVLjPGR3433a3LD=ZBw&Sdg_WlG_?Z?MxX<4;EYKr{wFa{c1i zZ>{Kk($3{=L;T2;A%0}9baUiFHFAXA;`~E0iv36{WIkw0GNp{eC{t`#RoSn__Ws|; z-jB58N%Q^4C`q$YRo3?^t@UH?M^d0{(Bb`4iu}miHRE*nk?Y6Bk6f0=@B5J={Mr{a zJyof_e|-E1-vg~%xpH7i(l?CWmsfD*m6Oz3OF72ggV$^2P8})lE~+kt6bguNC%+^r zL~@dN(h@c7>%&no8n@7S38ZuJ#d)t#^rEq>FBp-_i0orGMxUsUon=M-E^RogIqv~T z8RktL>;ddQNmn?ZRh=ImbB?he4s`&u{-473Fz1@^kHhDME&FymV!hp(X5NkOZtpef z^$+T&YX4XLr@BNrKhza!6kinAiF4$y$(#7o`0ma+wkP-j05AEqf49}G8f?Y=XFFv) zNtt5n#wvSLrFD=!|B^y*w0CA&Qk`d>S!Nr?JCDH&^6Xs(%fCbsdhYx~>E5GTQ;24e z&Zc|&R;)m5wJwU z1;|`;MA+n?#Kapd`3Kn9E`e<{uBY3Lf!)IWLo@GdhTj()X}x$KyD{<8ITg3y7h%$E ztK29M7RK}}iExO`_%S`#@pzLRPplHF+{jC9B=!W4{lJdB8$mr?2aOa)^&AN$rMMnK zZ1lyMu}z5TnL$)fHw+wwVLi>k&ek!d!;!D3kzXB&+{hju>TKQ1Ts!X#JvXt`EaUdd z6x-RV@F`ffT_nA=oiMBAe2 zjg{JIQsm!*k&=$S-PK{51z|N)CCz{E0Iy7nD)(4QoV|rO8+@;r7YVX(JPG z8%9Z+`P(Y1z0&;7*e^6)Id7ew*cOJ0{LDg4{~Y{G#kj0AU7jbvlg;8H0<_(l_S;Hr z#kedryIcv1cj~DFOU-mCZ7-qL%IvuEpruU1S42zPEor+RQ5FEtQTw z_7;9+-oAVTFM7vqwP@C#*iWo;$HTyB{a?$DFsCN`csLuLYd>vwS>LmEn+J{8=&#bQ z)7GlrRFA9kl=mnzLmv=N3PYa47fHX9UL`GKzhOt}at8pEUjO6gR^Ctk@e}@5`Yk>k zo8|q~KI@)3M8zvh9ZXq9Z%0uz{uoqz)4WPkaHr|K7Y} zQM1LJKiC)bpI-^F3|`dSsTuvy3Rn8+7_J4zqO(e_Znn7d@+^7%x4noZEvxCxmD+Bp z=HHB?lFOVPmx6c~d_$H#O~Eg-7Y^R3b_rCVgXLq88K4%w+ZnM zOa3|gd}*YknH3##DI9oVoa|V+s8>6hA_z1hPa^AwqKU)uz zhkl4RX{6oSrZ)eYxL!%T)=q3aPn_>k5b-f-God6V+wmtih>T0avKSTYJahmp__ zj^eZC#$9QC>@FT%?hXwh9vd>Iydb?c`Xe(>((jDvFT0&W{;3`ce+Kq&yJtDPONt)zr2>1h==Uhm)46`cM@9KxiddNjfkd_5*R{vta?@~gN4p5 zTt3UK0hYprjx%IXnk^lP{1O^=MdW_=RMD8!>Q?7HvbWG#KFT-O_DxmcO<3skN)L>m zOD3t5cu!rTsN}%ofB!$joGTn7e5SqMy2iZS+-3a6xZg@jhXd;S4(|1`gAnj>~2NlSJu2N z%Du1;{^VQz#$0W)qFu_a*A(`YNV{90ZLU21<+Pu7Qh7+ZsZpI`sEgT~lt&~XE_648 zjms-u4jNK9`X4$rC-l5f5a%ZJKK3m{sij}KUN!mUGz}fyn#%4A60v`tct#b^vuniL z*f-I?^mEpir##-ytap)jG{|2G$xpCrltFi);D+*WQ=F$90wW&OP_e+-3GfyDZC=Wm#Ti$t$t5 zI}ULYXF--7XR$MqM)JgxMxGftwv%A4%GyT>g}|dE1qze`rNApYw56rA&^}6Op$lzV zT1aUrElW#Fq3!GYf8V)x=FZHWK~9_(`hIdISLdF4?^(X{o$s9Uo$q}A+u=cH2%bWU z_8}yj%~pq%F76(+{iexqvGO<5zlVY4y3KTOXi|CNHv1-II@?oS4K>NMPD0D>duW>T zJv5zuTu;9(nx4K@yUnI^qt86SAw9i4n)>!(bg3JW;IU&awT-~aO6X6Kx@x5M52jwL zj3z%I5?9&>k&kzv>8cxO4k#CrQ9Zfs;lyWr_Qq!H8|ns{16@s4IZdLY@92mi8~B=Iv|IWxczKexkug5QN6kq2GvvHV58j`aEsE8WA>~SM_9QM^~65?JB;Rb`?M4 zo8zS{KZ-UTU-ga?9X!*i?aocdi3TvUCU2(ShjC(HbK939nH!WRZm{`8YqB~{G|9A1 zz)BObWs!bKG=0bQ+70%VDEoa+GZ{Eg?un-U<^aZo{Yb_;CakP9{&cDJ$PGB(3$ezHfzx#P@_=;x4)3^b4BRL; z&A&~)6cjyf!1*jF+T9o+m|Q;GtPyzZ9Aw|e36X*iUHCPfTxKY(0#FEQ5Vi8NDfU5W zh@no=pCH%O_^ma>up!0_vE3q<)@aB2W`$pKLNtKuV}KgKtvA7O0Z9uUJArXjxn?+= z;wyUqPBgok4e!WwB;bO|PYLirgn}IQ<`Nd6Zc;fF3kQVO!@gM=w*$an@F+ScEMUwf zgatxa9pq>ni+aMvAt8ku0u-tN48t2>X!(?{3;_Yq9hLrfo=8}Tb``u=69d<;ltq)T z@vxdAU<6y;!sn{@Wpp#2R5$p>u9va33Dgx7{)2te^Qj|w+pSHhTNU_u3)e^o_$J2B z`wqpxlQ~@df(r0&j{J$|Q^Z|^;I~e(J|Q+4^jl|$Er!?$4z%bIJg4KG8b7>%V9Cyb z|KJB2F5m|)0nqJK8JHsQTwTba#|{!IhMItgfe-GmE0Q3X5Cw*|?|GVZ7k|0auP( zjCZKYi%@1UVKv8!d=qFLvr zfo{OKNr0^&N7`H_1iVh+iQIrTu-M5vd&;i9iAqAsvSWGzz6dc$g&QEB(||UR&b8s@ zzT%R;f|9^a=gIrLbVUpo`L)F$-^ngUgHsH!d2R7X9J;>st6?}Whtq020ti`d!L1LA z(}fveO(7o%)h4eQj!E%VZ+Qh+0>1UW<4vbAOblK@9t;Y-%Vp_ap-0_t(hY$1CHKp~ z!vuX%Scou*8O4KW9Tb}-(S;aExsRe85MrDAs1g7y2z@2Qs2g~m8`z^ek17cc%SWEP zfFU9?1t>{P?maK=oW%J2%uguaPbAqvDPKWxSFDNG(9 zBJgVyYMKQHWJl!(XU{S$->F=MIGerJBUu2YR|M=0p?m;`WCUa!B%DD#A*D%JiWVhn z-^(FH1J5xFNff4T>xFfMhw*|9-%t|X@hDBP;B*^PEO0qyJ)JtmTsq+6QIg9T)yWMw zQRW0wg}MnaAj`u9s{`x?a$1h-9M5_nFfmgbBAIy(g%~7M*GNJ{AP*uPB$a5il)y9y z2%HTC$C1c_jID?tG6n^>32^1uxxKe%dC?uHg@G_(5pWc_9hd&gWgq1E7&*%46eQe< z(<>|8Ryr#W(T9N0>krWtSO$F|pbN39bH-0`#EUoaiUi=vh*J!V|I$G^zT(fla;X{y zJs}|>7HGDy87;&}GIExoDg*%xKloMr%xQAu4#6-eAv7@Xrwhr`(D1?$YuaPvz{EAT-jK-h)A@dPmds{xn|%X7_e z7#&3CfcJ`F3LOa^{qYGvDT1CCOix&T;!U$Lj20>`xQyThQ$m^IgyyooU#y*=0H(wn zdBDQ3wGI$r)4*OLaRSsch?=$RW?m-}FU}1U_75QdNqV!uxrSc=Z7`=*s<@@|Xm?DF z(7$kfkgsyGgj@VD&Be8saC87kMqch2-KQo%68#vB-B=oR>%?~z6x3;F{w0A>FPnZd4WNrMGPxWwsH4$@!LEZ&oyn(|PFP8FinR%v!Qt1(GrLhB z<5+~!0Gid45R3&(X>>UWBr2~Nj!E&A1zNn>)oggjn@(f65#tq@0D}bC9ZCoW48poX zEGAdMp)A8&+cb#(j1! zv1skFcO;UQu`dzsjvBgY?6It5bYL(Xv2$r%Pp0*eLEs5QW59S^qd(Nu*PTw9n|lBr zu$eF(_Z4CT2JiyH1}*>TAHm0O!2g5ze=Yte7PV7&`<|Wht{iN&HM$&+8YijVsdH zWvJgeuWn(7;r;)~!VS$oiL(uYN-~o z#m&OZ&>GhyoM>8&-Xm<;zacoxcpK`ncL z{w&O-2;&lp+rduJmk=8u2XAy&Ln!b(G=u1Mmgkz`aEhxv zO8}c)L0*)&xO(y{0!$-C6Q!cUZ&aK?MEk`WR60e+BkUt zszFBxwK`X|;d4+d=uk{TtjUk6kZUO5EQUVAoZy84joTs*@_DFn@q*xmds&p^HZ;=(T%=7L_BGIKLPt@V(xCs8s+7p9NP# z4F-Ne7Nq7=id#u<0p%4|8MM}r8Y${XSZQm#a(g~sXHzQfSxhVMHN!DLIs`#< zzJf$sh+vbz#7t`3GbNH9bPOsn6fuRXfp?U0KwE@Xf-$QdB?R6CJ){l>6p}=e0WfbN z#qi$H_jiikgjf%Logb!MJwh5si{Xm)it~O!8`Ydh0DS=@z*0jjW120c_%8l&$RUG&8N)IhyEcx9Pf?ohz&-!Mf<~3;iKk<%y%09V0^_GGdAdX{oc^a zLKlKR7ko_ndF>7AQ|ce915mpUiyk!Vf5G3t*TjE{Z;Q{XpADAvKJDK_p9nn`{5S2X z;1`4M4Q7l_$3GbUGxh!PTjP7eFAXoMH>qQ>_gjB2em-`_dY_oJzGgisepb9r{H^$k zb+h_9ZBpABxx;$E>NI~C`-Rw>qQ4Y@;I?3*oX%^)!lW` zRLP~%+5PH6bq`hyGqDuf6NosLp5-QW`}4Kxb<~E}q3nfX{z8@-*+a2E^H%qa_hxZ} zdiY0{tgw=o7Oqk+)}Qr`NHh25N^*LCX%-lXBdH3rB>LL2#z+67JP(D!1P2*1sRsoT&6abrS50RZ;ZW9-!ryOEkNdoFW1-kkqQE!C0Ld#;BgUeF zP9f!K>K*d!YQnO1e>bGw+4>9l-rstQe%yO=m-(qc*a2WosYBw1+)Q?9t~@?fSj?3I zKWL2lx1>5KWNF58Q^j04@co9EeXPQ%}vA3vRYFz|os?*Efy@WF-bvp@6An^ zctl*dtTq@=R{Nx+kD~d;s%zA1l%}v(2U|Y9p`LhVNKMAnwc=1o5@cG@=@stx)7&0P zsAY=Rgj0dg9jA!cSsq+Yvfxmnlxl^@inUd}k3_?Yq|{X?lyYeLO8IC1kUH-BY274Z zUu1t^mm|TiK=^r0?CYP`qwZJSXVi>2$qFa)3rft}KzqD5yW7<5jiuP-8@sbly-p!M zJd&GVgds-Vd8X6zUEs!AFA!)!&Y7j>V$?6#e7q$D?nGE=Omg zH%CXJsmQ-Z{w(rqk+()(8hIdcTVzM1J^aJ)Uxt4p{Pyt6!ViQGhewT<8hQOy`kBy2 zLyrfa3Vue-t52%0RbOoM8=3INprw6Mdq=p#`l0m~*1N37t&7%_HEM0JI<1HmFu!O1 zo%y8s1@qJ9N6q(`Z#G|JzQnj!pANk$_;K@v=Dc~Ex!w4I@s#oV#@j%I)qkrLxa<_5 z1$v2Q!%Bjt2t21bSw4^ZI6dMCni8Qo4o{Mf(33DtXZiNv!t`Pxzku0JX%T9GoMO<5 z(h(s!Ij^Em0{=lXyz!;U2Xa&8NqxlNz3DN z9JtAN9{3$n;_&-e;C$A5^O?=+u_h_ijq8Emrth2)F7R8_uI^;CZVD6lbgPHIN!9i# zd*IibJ@}-oE$CT0m^G{IugN<3yg4?Z}mPC1OR zvPyk`R_1>58&ILXR`2)L>V2&W{@zv(e~AP%5{^Fu5 zdp+SJp75=n@D-l$22Z%l6OQdr^Oc3o$^^g!O;O#6Y~3ffw|I6Ntqm*RUAI#`UAbH7 z0w{s&6e6xG-uhwAQTT8rlD3@#TJMkCSaDq#islFGT+xEy$M%cpOm z0{|kvBM^TKm(_o(6j-IeDg{<4uu6ed3anCKl>)02Sf#)!1y(8WV@QD)U;XJ9;U65c zy#nXA#YUW9RyDZTXQOjC1CarE4uB0k?ET5-0GZqKOHtQxW8l4ZJqy2n_ z0*4UdIAlU6=lNJb!{<1AA-#Ob69?``F(e|7-yom-91a=atfE3cIs@RI%BZ^7;X?`J z^2cIlM>sF!eG|S$5cI2AYb<05!`!pXzz7bYWd|j z<a`RSK+9V3h)^6j-IeWu(9+RqNWlZv6cGWMS^mT_*T1P>V3bkx5&v2bPyhu~)NxoJ8YLa*=Kp=i5zcgZ&o6mVt;e)tOuC-c+i z{Nl!T_9F{g|Mx(H6u%+%v#}G=|B5~q`NhcI@N9Ua^+%R%Z8!hg{3-Ja<1NOG`UgT^ z548pNYB*LPE<)XN2PvK|+dun&J)eZuqw7xAdceDaV(TkXtT?6?EsTwS^c#J<*Y~|% zd3Rr%*kbj9L{FBCwPbLz4jcGHy8H`M);&!tX)wpV2#pvfYCRy=Z&}Y zM%#KHSBgFVDEbL&sqw=~32$6ln7Z;vwsiVR&tb=_ul579FV&d7`R+KHQ%9|dXZS}14{@%`S zD*xPhlX$(^>OCsn*8Wntm|vK!{ylVX0UfkRHu6`>XIBGEM1}zI@&Y?gwOMz(+WPUQ zSsTAYzK!Med#mk<@%H$}_EXB2+P*Ii`c%^IBUxR)>J2X^>{C>$ZMkZ#N|#Wpl^sWx zbz9lHsWXMNwl$Mc9!`B-yxXba%07J>&Fa@z?7Qt*DXmCQkuMm~=b6)lk5IIv1iuk~ zP2jzW>GjEoa$n*`G0>U-{6+KT^{w4udxmObe6&ebBB>26+H#NJ>o~W9d2`ag;viDv<$=-`J$16Nztf+13 zTUzN$D5HChDb}7xuD0(%f@5P$L=qu>2|C}?v3b{x%|EC1zAW&KJ#VrA2zob<7uQh| zG-4?BmT2P_BhCEljL_`K-(gJiC+Zd5>UST3t?=zU`SSl<4h_vQ!+gQg&e+Fki!#2~ zsSeoxl4|3fB33;0_(qB!w5f4JJh@-9bM{?C!?vq9Qyz1tE-BY$#BCO@ggce@DjO9| z`GVQ(olQK$ZjjPj`+3q`&r>6Hvv5C|KYYqQM#MEGyRmG!q-r*LVQP#Cd?OWj;(nl- z9|dDifuaiWq%bb28Jp2$x-;-P^~qye_m%d9({B`o`Q9)2#$Ir3N-OQruCnX_`v~uZ z@8n^dN|?KJym+63qdrm5gGw&;iFABlB=*6;YfPUvDudo3XN7p3bl5X&KhGX##;g|8 zjy_xE40kKp$Sc#)?UBe!0w4A*XY;1W*%p&bpXKLU0EO+`UC0|G+b8F>7~| z(^nXo00aYmbNk>H)P{FbSmwa9Dcne|Avcnx^EQCP;J~#JLO{mATj>lyN2;H}*)_q* z9A?x2yMz65vfoQ`&>0kPZYcwROp<}2N≺_AXCS>|gWTc@!PMKa)#&lo%dsVQ51Z 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 literal 0 HcmV?d00001 diff --git a/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/CodeChunks.db b/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/CodeChunks.db new file mode 100644 index 0000000000000000000000000000000000000000..42e078c40f9c93fa937667ea4a56263b4dfba637 GIT binary patch literal 307200 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%0AE&$bca--ZRD(}|RKa|)VH=M&z| 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 Gvf^J7W*I>M diff --git a/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/SemanticSymbols.db b/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/SemanticSymbols.db deleted file mode 100644 index 14547e976eaea6989cab814f458ae0290a2b2335..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151552 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 diff --git a/.vs/Phoenix.ApiWrapper/DesignTimeBuild/.dtbcache.v2 b/.vs/Phoenix.ApiWrapper/DesignTimeBuild/.dtbcache.v2 deleted file mode 100644 index 183f14546cd12a2aa08d28f64430f90bac944621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110738 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�^7)ZJo=bCQGy4TCJZr)zW4qGEK3Gy=J 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 Y$YzAtOk}e{tPWXyh|NYe2b;70AMzbbO8@`> diff --git a/.vs/Phoenix.ApiWrapper/FileContentIndex/a616b0ca-f98c-4b41-b9fe-c818f5da36dd.vsidx b/.vs/Phoenix.ApiWrapper/FileContentIndex/a616b0ca-f98c-4b41-b9fe-c818f5da36dd.vsidx deleted file mode 100644 index d07da3c1489249bd3aee6b46148ff88f47375979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93282 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 I_Qb^h1J^+e;Q#;t diff --git a/.vs/Phoenix.ApiWrapper/v17/.futdcache.v2 b/.vs/Phoenix.ApiWrapper/v17/.futdcache.v2 deleted file mode 100644 index 97d95f6ec884c7f90d23ea4c60a4d7f0a3414a38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmZQ#U|{fdwu%WYPAw{qDND>N%8zl$PcF?(%_}L62`I`>FG|eK&CE-WaZk)itf=(K zOiPV%_tEon4T*8BNX#wBNrlmR$;Aal`B_Xr6M3EU^U^ZYON$aqGV}9TT~d=u(>Vfi z5=+wZi*nf<^D3PKLbYBs(|b z8I7bFt#&Qhb9MgF%$+;;zt8{v_y7NU@5?Wp_x2;-x$GUu$(Oift#cZetD@$>Xy>@&r17PmA2hQ(rHt5KCi-8y&v56 z{C$tV>A8a8R*As9z?hNtNb7-p5O>|uM1@$4uP;Ii)EBq$t@YER@J91h+;-qi0dHIy zkYs?C9$8ADG;(UF(tnGkIUe?rvjI#;>5zptT7RKWCH$4jV;S&Yf_N?lRD=Jc`0fK; z0Wxi8sd3Sp&u8FyKHxOKg@E$_=L60JFw8mlzW}fRz_cs`Fg=$8_`Tk-jd%f90-69< z0Tu(602pp5{+9u+0eoEbyB7bwfE55Apc}9OppUnf_dSSv9pDDQdI0P8M!-hECctLE z769|M75_H@`T*Mi+W{8=YMGvyjB7Ug|Jq}2|3}l98ZUW&qWizrwo1_ft^YIJN0459 z|EC}6!leNAf6`Q~|MMLkzbBno1h^VNT1kJa{=XdW%>AEz-Q55AeLeU8%hWtFo%QZM zi?n_Y@Y{gj0sJoD^MFGD)?GQc7h&!Ld=c;^z?T7k0JtCU0N_EuLx4X7{1MW(^T3-#?g&FV%w6!wieM$L!0#dL(|D$m0d+6P zCmd1ncc5G|(y&s>S^V40w-(*UfZu}$(q-1K=3nlgyoy%-ZvVIH6|?8(_J1+|bNhcB zv}X4Ee>wWMLu!`7QY)^d-SR5v?;j(&_tYru;18BY4>~r-qwlR{f=<2qCGK8OpLSt3 zIRHAJ2Nljrw@OWz<;9f|kP;E`hJG2y1FXiuNEP}20&rhHm73|_IL*HvW2N~=7e?c8 zw1ANQBi;Q9lt20Y1puZ)_p0PAc|GlACHz}3CYR#@SpQ2A8D$i9@&7);s>3hl_({|< zWj|?*y(wIKP}eENCu>vwGavCSbbw!<|2_p9c@V*2b>dmb;h2go;EA+1IbbMuzAD=P zU5JJ}3tb=DbwcIB#+9-l_vM2>@fXtNQ~CgHURmXl5ggnPQ+UN zdKj-x&JfILnsHfbglmbfrTUer5?sf z`Hvv{T@=K?k-ql>(-3|vg-y7QpcPOLuoJ0BqfRo?-jcll_@{8&Eq}_9I0vFL;}5YnUHtm`*O&1o)HYk8s0kn1Kg(bA!ycqTw149`fc!fy|I?6G z%H-&_A=VuDPAzABCtM?Bb`)UM0W4LC$VWp)9O#eSP#Q?SZXM zjLlYMLHP&UvnKO5B(B5*%j#}2O>kS#`}Uya4WZ1ui^{i74+9}{Zn_bLyd;C zo9&n5p+*zcSF`e`;XLn1@0k}IJNGH4NC)M3e&tAJK+dLU>%;e+IL_*Hxwq=IpG$I&JBALEKZgRh0bzc6PF50^Tll~R{ z$)0#BCsT-8vxKda({eVRmj{%5nCUO);iP?)_)e{!sDHc$50vlQ?SE|utMz{?{2Y%t z?vNj-lpd}B6E~ffu5$mRAf@ng{3mYmgB*WZ7Uf(u{2%#+uW`ZxXU=~C|31*9ex!oZ z($bFQPkqC+0K56uk3UZMZ=of3`G0+FR8#+l5y9u{g#YhE`yvOB!-zm0XK&Fcq|a^f zeKqoTefu-F|D8w;d5_&li`95*PC-)@Go*@~{P?D9r9mjmb9Ikw+%#h>3 ziJH9`8l2R`VN~r*B{2+FGj{H)I(gj_@sZJ#tPTCuAZJgnS=p#eMm43;+!|UD61)U> z%_RC4TXYT}=2z5z>E)a2F$R(!A3{GYKL|3&Mk_FkR7^U+_O^}my# zjlKKRUq1Wex1`rHncr;5ANr|PevNh4WSH-okqRC(E;%D3ET!69&Js(2(Bk^jkB60*^*Vph%zW8WzuR3QP z71LPwB&NpO$^FrAXKN@Fjd=atp{O_1(;4g{mH`Edhcq4&szqcjW)!Nb#h;;e=od+hTCd^jy2W<|G5qC73*)y5Tq{i~e zOgby4;`!vb+^(jRNoRgJ-L4|(L4Qjq%(|e{lsYv*=r$U_mXE1u&qdJc4=zet#M)>rO@ah0DK|6iV6R zU%xoZ;~(WY|n#B$iZCv+=gq`U3~04t^XG|7>>4rgBe0v zec)JRP+xv)(Rzq+wA_Zm+hAaxH^9_E<`14LZm%lT9 zij`8f#(&CUO96Ex zd`DR&)fJpG(9W5 zWqSSup4S4RfDS+>pbO9q=mD$)+yGb)*Z{Z@uo18cuo=L(d)0qE9**GDt?mTe47dgG zNx&{Z3~(#pHo&IuI zV}NnMUcdx^;?GY5_5&#MJplL&;10k+fKK~pp?Exu5cMLzRCS?Wnt>!0Pp=$H!K;;b zooM+JN>g!jl&gnV<)S>=xR53|`oI+DbiZexC;qvBcaP3J=RjoQy~AA_Ixc-T^NMuv zwXUO!H*~!6z&Gbf((66EH=$Q(7QZj#VRWrIOu6UjroUX=cHfD*GlrgypD`wTPaF^a z5+J0>##x=-mNI72KMaCuH7UBs9B3D3U$n){PFM^YrwrX=av z2F*tjR5pV4#Gd>@gXV!!zcjdQ+MrVN-AHs*Ye5=SqV6hHp*G6%|M#F4>w*8DvV^Qt z?!S6{_lf5J3+o-~fip9=;BinzQpYUXaT4=n_QoGJC}m+@xVoNJ=1GiLg7a*YF^g7t zDWrN3xhU{G+Os4zc0NSz*t!}sAH_2oWW|>A=w`mQJ}?EEXL@$}$ay#AShH(|R7mCN zxZR~l&s zajrHs8h#Ba6L(?wH9fT{&EKeKr7~442#mqd!A`cnFt<_iV_jOSKv-#rH_P=QY|G5{ zcg6y*rTtk9vY3Ky+*hQ3cWR4x%rm=`!&oxbJ&-n!#m(5-IKRkNH#;-p-@YDlW{6|}UaD?y#j<45rB#aZS)?9q_wY@o?Ta3?mqRFUgYskdFyJP_*lhXz}{a-cut4GqW< zZ#+0K=xrH{CtBo0q}88jo-6&_PMunqdD^gOoJ_RG#&i~!15;}+VFWt0_HsyBdzs?e z%b`+rYEjLaDe2_?o@lVME7;uaZHu&actfFJ)Z5k(Y4$cp!p;6rccd%Y*?eH~*%{1d zIdfK%C9bZaI?aKt-d8U*<;3DxBQMoj9NTG%4yve{r2k?DTbILLB=`@P|Eul#mB!)! z%1}{dNnl)A!Jg*|c97wz73>vO1!#Tr2Q%2v?ex(aWC3iPvcV$8NGZAYq#OVAwoB&w z`N%T;$f3FRUq<_{Ehv*-z*e=4`qckg*?)13p4t8@1-}tME$zP$o#KSO2~ZZ#LHPy8pjm@a@EvU5i_FYZc6mISI zH;2N0Z?GrW4HbVYl>Kd8xcEETnxnyJ*x%Z7U{YHiul{R^bf`bo^k=fVS)^*KfY>H& z>c|e)B-uq}TYZA+NIR{SuG%Ve<`A(OsP;}e?W9YcO6)RM2R0vbr7o91={NDKo?`7Opfw)u_j~1FsKtxT6eHfYFiq~{_+YRt zB+J2Yn-9Bkv<4%S<~b$KeJrE8>vCy$g?%S$MGnK&b=Y941z!{Hrf9~zR*LN*{S=rY4_6yz~TJwp|bUpOey-#1(e)}DYRfD+$sm~xK zno-kC_D6SQuHTV)q1yQM8?@Tq|J6LMSac+d=nMP57SW;lOGOR(gbM@(%9A4RArzUMwLJ=hCtwWO^-Fz!lfT!&{|1hPum%Zxj=a}R90 z>kq^!x2tjP%rfM)kO!_mJeAiUi2cl`yQ{phzN~kZ6)o)<+bbh#lQMg2J&d7*O?L5q z??RaRYF*~QzQwa~{hv5-Qk=*4Min`8*Z*80*!Z)trT4 zzh{-E8$6xF+Hn#|{y15?d4}R#h}iuj2j=uR8>0Y7*Lo-fJujve3>0t!FT0*--q5nRc2c(IdQ z5S&FT{yX3o!97MC>1>}Rzt_rk96&QfCJeaXL*7oQIQK3~~w*v$VKpUr)Udl47nQd-LrNR>`5E0Ww=>>^)el`*Ow6pmd3w5=Xo4N|%D)ojSuYp2(;-=CaoWL*uA zs{zuTV|=Pil1_?vkds~tI-Q4## VKU8PQ<&#cz{eyN=y|aB&{~uw$A`bun diff --git a/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.backup.json b/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.backup.json deleted file mode 100644 index 3ed33ee..0000000 --- a/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.backup.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "Version": 1, - "WorkspaceRootPath": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\", - "Documents": [ - { - "AbsoluteMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\phoenix.apiwrapper\\phoenixapiclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|solutionrelative:phoenix.apiwrapper\\phoenixapiclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{67E01460-3F3E-447E-99DE-90B91A3A607F}|Example\\Example.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\example\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{67E01460-3F3E-447E-99DE-90B91A3A607F}|Example\\Example.csproj|solutionrelative:example\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\phoenix.apiwrapper\\kiotaaccesstokenprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|solutionrelative:phoenix.apiwrapper\\kiotaaccesstokenprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - } - ], - "DocumentGroupContainers": [ - { - "Orientation": 0, - "VerticalTabListWidth": 256, - "DocumentGroups": [ - { - "DockedWidth": 200, - "SelectedChildIndex": 2, - "Children": [ - { - "$type": "Document", - "DocumentIndex": 1, - "Title": "Program.cs", - "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Example\\Program.cs", - "RelativeDocumentMoniker": "Example\\Program.cs", - "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Example\\Program.cs", - "RelativeToolTip": "Example\\Program.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-02-11T10:23:59.671Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 2, - "Title": "KiotaAccessTokenProvider.cs", - "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", - "RelativeDocumentMoniker": "Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", - "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", - "RelativeToolTip": "Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-02-11T10:23:34.318Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 0, - "Title": "PhoenixApiClient.cs", - "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\PhoenixApiClient.cs", - "RelativeDocumentMoniker": "Phoenix.ApiWrapper\\PhoenixApiClient.cs", - "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\PhoenixApiClient.cs", - "RelativeToolTip": "Phoenix.ApiWrapper\\PhoenixApiClient.cs", - "ViewState": "AgIAAAQAAAAAAAAAAAAAAK4AAAAAAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-02-11T10:23:33.291Z", - "EditorCaption": "" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.json b/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.json deleted file mode 100644 index a9c9225..0000000 --- a/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "Version": 1, - "WorkspaceRootPath": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\", - "Documents": [ - { - "AbsoluteMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\phoenix.apiwrapper\\phoenix.apiwrapper.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|", - "RelativeMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|solutionrelative:phoenix.apiwrapper\\phoenix.apiwrapper.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|" - }, - { - "AbsoluteMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\phoenix.apiwrapper\\phoenixapiclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|solutionrelative:phoenix.apiwrapper\\phoenixapiclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\phoenix.apiwrapper\\kiotaaccesstokenprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|solutionrelative:phoenix.apiwrapper\\kiotaaccesstokenprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - } - ], - "DocumentGroupContainers": [ - { - "Orientation": 0, - "VerticalTabListWidth": 256, - "DocumentGroups": [ - { - "DockedWidth": 200, - "SelectedChildIndex": 0, - "Children": [ - { - "$type": "Document", - "DocumentIndex": 0, - "Title": "Phoenix.ApiWrapper", - "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj", - "RelativeDocumentMoniker": "Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj", - "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj", - "RelativeToolTip": "Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAA7AAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", - "WhenOpened": "2026-02-24T13:27:47.184Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 2, - "Title": "KiotaAccessTokenProvider.cs", - "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", - "RelativeDocumentMoniker": "Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", - "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", - "RelativeToolTip": "Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-02-11T10:23:34.318Z" - }, - { - "$type": "Document", - "DocumentIndex": 1, - "Title": "PhoenixApiClient.cs", - "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\PhoenixApiClient.cs", - "RelativeDocumentMoniker": "Phoenix.ApiWrapper\\PhoenixApiClient.cs", - "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\PhoenixApiClient.cs", - "RelativeToolTip": "Phoenix.ApiWrapper\\PhoenixApiClient.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAK4AAAAAAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-02-11T10:23:33.291Z", - "EditorCaption": "" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/.vs/ProjectEvaluation/phoenix.apiwrapper.metadata.v9.bin b/.vs/ProjectEvaluation/phoenix.apiwrapper.metadata.v9.bin deleted file mode 100644 index 1c75bda7dc21ca2293cab974f3ead2241a75e8dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 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 TxIK%7S=^DuqU`^o>g)dlr^$Ba diff --git a/.vs/ProjectEvaluation/phoenix.apiwrapper.strings.v9.bin b/.vs/ProjectEvaluation/phoenix.apiwrapper.strings.v9.bin deleted file mode 100644 index e191843c75ec53628acbc8a04be56f090a2f6b74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156111 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

&s!VX; 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 AcK`qY literal 0 HcmV?d00001 diff --git a/src/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj b/src/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj index c2db4cf..ff952e3 100644 --- a/src/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj +++ b/src/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj @@ -13,7 +13,7 @@ https://github.com/Galaxy-Life/GL.NET true - 512x512.png + logo.png GL, Galaxy Life @@ -41,5 +41,16 @@ - + + + + True + + + + True + + + + From e296294c44d175d4ff2f58d2156b2bb67d66e50d Mon Sep 17 00:00:00 2001 From: svr333 Date: Tue, 24 Feb 2026 14:53:49 +0100 Subject: [PATCH 05/10] Create proper .gitignore --- .gitignore | 489 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 484 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index add57be..104b544 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,484 @@ -bin/ -obj/ -/packages/ -riderModule.iml -/_ReSharper.Caches/ \ No newline at end of file +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from `dotnet new gitignore` + +# dotenv files +.env + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET +project.lock.json +project.fragment.lock.json +artifacts/ + +# Tye +.tye/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml +.idea + +## +## Visual studio for Mac +## + + +# globs +Makefile.in +*.userprefs +*.usertasks +config.make +config.status +aclocal.m4 +install-sh +autom4te.cache/ +*.tar.gz +tarballs/ +test-results/ + +# Mac bundle stuff +*.dmg +*.app + +# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# Vim temporary swap files +*.swp From cea562ab8d69453ac67d6f1e45d7a92affce96db Mon Sep 17 00:00:00 2001 From: svr333 Date: Tue, 24 Feb 2026 14:53:57 +0100 Subject: [PATCH 06/10] Refactor generated code (move entities to separate files) --- src/.editorconfig | 229 ++++++++++++++++++ src/Example/Program.cs | 3 +- src/Phoenix.ApiWrapper.sln | 14 ++ .../Entities/AccessToken.cs | 8 + .../Entities/PhoenixApiClientOptions.cs | 31 +++ .../Entities/TokenEndpointResponse.cs | 18 ++ .../KiotaAccessTokenProvider.cs | 5 +- src/Phoenix.ApiWrapper/PhoenixApiClient.cs | 66 +---- 8 files changed, 310 insertions(+), 64 deletions(-) create mode 100644 src/.editorconfig create mode 100644 src/Phoenix.ApiWrapper/Entities/AccessToken.cs create mode 100644 src/Phoenix.ApiWrapper/Entities/PhoenixApiClientOptions.cs create mode 100644 src/Phoenix.ApiWrapper/Entities/TokenEndpointResponse.cs diff --git a/src/.editorconfig b/src/.editorconfig new file mode 100644 index 0000000..a6b0bb9 --- /dev/null +++ b/src/.editorconfig @@ -0,0 +1,229 @@ +# editorconfig.org + +# top-most EditorConfig file +root = true + +# Default settings: +# A newline ending every file +# Use 4 spaces as indentation +[*] +insert_final_newline = true +indent_style = space +indent_size = 4 +tab_width = 4 +end_of_line = crlf +trim_trailing_whitespace = true + +[project.json] +indent_size = 2 + +# C# and Visual Basic files +[*.{cs,vb}] +charset = utf-8-bom +dotnet_style_operator_placement_when_wrapping = beginning_of_line + +# Analyzers +# dotnet_analyzer_diagnostic.category-Security.severity = error +dotnet_code_quality.ca1802.api_surface = private, internal + +# Miscellaneous style rules +dotnet_sort_system_directives_first = true +dotnet_style_namespace_match_folder = true:suggestion +dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion +dotnet_style_predefined_type_for_member_access = true:suggestion + +# Avoid this. unless absolutely necessary +dotnet_style_qualification_for_field = false:suggestion +dotnet_style_qualification_for_property = false:suggestion +dotnet_style_qualification_for_method = false:suggestion +dotnet_style_qualification_for_event = false:suggestion + +# Name all constant fields using PascalCase +dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = warning +dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields +dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style +dotnet_naming_symbols.constant_fields.applicable_kinds = field +dotnet_naming_symbols.constant_fields.required_modifiers = const +dotnet_naming_style.pascal_case_style.capitalization = pascal_case + +# Static fields should have s_ prefix +dotnet_naming_rule.static_fields_should_have_prefix.severity = suggestion +dotnet_naming_rule.static_fields_should_have_prefix.symbols = static_fields +dotnet_naming_rule.static_fields_should_have_prefix.style = static_prefix_style +dotnet_naming_symbols.static_fields.applicable_kinds = field +dotnet_naming_symbols.static_fields.required_modifiers = static +dotnet_naming_symbols.static_fields.applicable_accessibilities = private, internal, private_protected +dotnet_naming_style.static_prefix_style.required_prefix = s_ +dotnet_naming_style.static_prefix_style.capitalization = camel_case + +# Internal and private fields should be _camelCase +dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion +dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields +dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style +dotnet_naming_symbols.private_internal_fields.applicable_kinds = field +dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal +dotnet_naming_style.camel_case_underscore_style.required_prefix = _ +dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case + +# Code quality +dotnet_style_readonly_field = true:suggestion +dotnet_code_quality_unused_parameters = non_public:suggestion + +# Expression-level preferences +dotnet_style_object_initializer = true:warning +dotnet_style_collection_initializer = true:warning +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:warning +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_inferred_tuple_names = true:warning +dotnet_style_prefer_inferred_anonymous_type_member_names = true:warning +dotnet_style_prefer_auto_properties = true:warning +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent +dotnet_style_prefer_simplified_boolean_expressions = true:silent +dotnet_style_prefer_compound_assignment = true:warning +dotnet_style_prefer_simplified_interpolation = true:suggestion +dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion + +# CA2208: Instantiate argument exceptions correctly +dotnet_diagnostic.CA2208.severity = error + +# C# files +[*.cs] +# New line preferences +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_between_query_expression_clauses = true + +# Indentation preferences +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents = true +csharp_indent_case_contents_when_block = true +csharp_indent_switch_labels = true +csharp_indent_labels = one_less_than_current + +# Modifier preferences +csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion + +# Code style defaults +csharp_using_directive_placement = outside_namespace:suggestion +csharp_prefer_braces = true:silent +csharp_preserve_single_line_blocks = true:none +csharp_preserve_single_line_statements = false:none +csharp_prefer_static_local_function = true:suggestion +csharp_prefer_simple_using_statement = false:none +csharp_style_prefer_switch_expression = true:suggestion +csharp_style_prefer_primary_constructors = false:suggestion +csharp_style_prefer_method_group_conversion = true:silent +csharp_style_prefer_top_level_statements = true:silent +csharp_style_prefer_null_check_over_type_check = true:suggestion +csharp_style_prefer_local_over_anonymous_function = true:suggestion +csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion +csharp_style_prefer_tuple_swap = true:suggestion +csharp_style_prefer_utf8_string_literals = true:suggestion + +# Expression-bodied members +csharp_style_expression_bodied_methods = true:silent +csharp_style_expression_bodied_constructors = true:silent +csharp_style_expression_bodied_operators = true:silent +csharp_style_expression_bodied_properties = true:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_accessors = true:silent +csharp_style_expression_bodied_lambdas = true:silent +csharp_style_expression_bodied_local_functions = true:silent + +# Pattern matching +csharp_style_pattern_matching_over_is_with_cast_check = true:warning +csharp_style_pattern_matching_over_as_with_null_check = true:warning +csharp_style_inlined_variable_declaration = true:warning + +# Expression-level preferences +csharp_prefer_simple_default_expression = true:suggestion + +# Null checking preferences +csharp_style_throw_expression = true:suggestion +csharp_style_conditional_delegate_call = true:suggestion + +# Other features +csharp_style_prefer_index_operator = false:none +csharp_style_prefer_range_operator = false:none +csharp_style_pattern_local_over_anonymous_function = false:none + +# Space preferences +csharp_space_after_cast = false +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_after_comma = true +csharp_space_after_dot = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_after_semicolon_in_for_statement = true +csharp_space_around_binary_operators = before_and_after +csharp_space_around_declaration_statements = do_not_ignore +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_before_comma = false +csharp_space_before_dot = false +csharp_space_before_open_square_brackets = false +csharp_space_before_semicolon_in_for_statement = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_between_square_brackets = false + +# Namespace preference +csharp_style_namespace_declarations = file_scoped:warning + +# Types: use keywords instead of BCL types, and permit var only when the type is clear +csharp_style_var_for_built_in_types = true:suggestion +csharp_style_var_when_type_is_apparent = true:none +csharp_style_var_elsewhere = false:suggestion +csharp_prefer_system_threading_lock = true:suggestion + +# Visual Basic files +[*.vb] +# Modifier preferences +visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion + +# Xml project files +[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}] +indent_size = 2 + +# Xml build files +[*.builds] +indent_size = 2 + +# Xml files +[*.{xml,stylecop,resx,ruleset}] +indent_size = 2 + +# Xml config files +[*.{props,targets,config,nuspec}] +indent_size = 2 + +# Shell scripts +[*.sh] +end_of_line = lf + +[*.{cmd, bat}] +end_of_line = crlf + +# Yaml files +[*.{yaml,yml}] +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +# Markdown files +[*.md] + # Double trailing spaces can be used for BR tags, and other instances are enforced by Markdownlint +trim_trailing_whitespace = false diff --git a/src/Example/Program.cs b/src/Example/Program.cs index 98df4e1..7386552 100644 --- a/src/Example/Program.cs +++ b/src/Example/Program.cs @@ -1,10 +1,11 @@ // See https://aka.ms/new-console-template for more information using Phoenix.ApiWrapper; +using Phoenix.ApiWrapper.Entities; var phoenix = new PhoenixApiClient( new HttpClient(), - new PhoenixApiClient.PhoenixApiClientOptions + new PhoenixApiClientOptions { TokenEndpoint = new Uri("https://accounts.phoenixnetwork.net/oauth/token"), ClientId = "your-client-id", diff --git a/src/Phoenix.ApiWrapper.sln b/src/Phoenix.ApiWrapper.sln index a6ffa24..18c003e 100644 --- a/src/Phoenix.ApiWrapper.sln +++ b/src/Phoenix.ApiWrapper.sln @@ -1,9 +1,17 @@  Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36930.0 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Phoenix.ApiWrapper", "Phoenix.ApiWrapper\Phoenix.ApiWrapper.csproj", "{3C9F0468-0B32-45A2-82E0-53D75B28D00C}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example", "Example\Example.csproj", "{67E01460-3F3E-447E-99DE-90B91A3A607F}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -19,4 +27,10 @@ Global {67E01460-3F3E-447E-99DE-90B91A3A607F}.Release|Any CPU.ActiveCfg = Release|Any CPU {67E01460-3F3E-447E-99DE-90B91A3A607F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D9C4B5EF-CDF8-417F-903F-09241BB47ECA} + EndGlobalSection EndGlobal diff --git a/src/Phoenix.ApiWrapper/Entities/AccessToken.cs b/src/Phoenix.ApiWrapper/Entities/AccessToken.cs new file mode 100644 index 0000000..9bb03e7 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Entities/AccessToken.cs @@ -0,0 +1,8 @@ +namespace Phoenix.ApiWrapper.Entities; + +public sealed record AccessToken(string Value, DateTimeOffset ExpiresAtUtc, string TokenType, string? Scope); + +public sealed record CachedToken(AccessToken Token) +{ + public bool IsExpired(TimeSpan skew) => DateTimeOffset.UtcNow >= Token.ExpiresAtUtc.Subtract(skew); +} diff --git a/src/Phoenix.ApiWrapper/Entities/PhoenixApiClientOptions.cs b/src/Phoenix.ApiWrapper/Entities/PhoenixApiClientOptions.cs new file mode 100644 index 0000000..ef9ead1 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Entities/PhoenixApiClientOptions.cs @@ -0,0 +1,31 @@ +namespace Phoenix.ApiWrapper.Entities; + +public sealed class PhoenixApiClientOptions +{ + public Uri? TokenEndpoint { get; init; } + + public string ClientId { get; init; } = ""; + public string ClientSecret { get; init; } = ""; + + ///

Default scopes used when none are provided to methods. + public string[] DefaultScopes { get; init; } = []; + + /// Enable RFC 8693 token exchange flows (only for allowed clients). + public bool EnableTokenExchange { get; init; } + + /// Defaults to access token type if not set. + public string? SubjectTokenType { get; init; } + + /// Optional requested_token_type (RFC 8693). + public string? RequestedTokenType { get; init; } + + /// How early we refresh before the token actually expires. + public TimeSpan ExpirySkew { get; init; } = TimeSpan.FromSeconds(60); + + /// If expires_in is missing/invalid, use this. + public int FallbackExpiresInSeconds { get; init; } = 300; + + public string[]? AllowedHosts { get; init; } + public Uri? GalaxyLifeBaseUrl { get; init; } + public string[] GalaxyLifeScopes { get; init; } = []; +} diff --git a/src/Phoenix.ApiWrapper/Entities/TokenEndpointResponse.cs b/src/Phoenix.ApiWrapper/Entities/TokenEndpointResponse.cs new file mode 100644 index 0000000..4788f59 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Entities/TokenEndpointResponse.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Phoenix.ApiWrapper.Entities; + +public sealed class TokenEndpointResponse +{ + [JsonPropertyName("access_token")] + public string? AccessToken { get; set; } + + [JsonPropertyName("expires_in")] + public int ExpiresIn { get; set; } + + [JsonPropertyName("token_type")] + public string? TokenType { get; set; } + + [JsonPropertyName("scope")] + public string? Scope { get; set; } +} diff --git a/src/Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs b/src/Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs index fede440..16f7205 100644 --- a/src/Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs +++ b/src/Phoenix.ApiWrapper/KiotaAccessTokenProvider.cs @@ -1,13 +1,14 @@ using Microsoft.Kiota.Abstractions.Authentication; +using Phoenix.ApiWrapper.Entities; namespace Phoenix.ApiWrapper; public class KiotaAccessTokenProvider : IAccessTokenProvider { - private readonly Func> _acquireTokenAsync; + private readonly Func> _acquireTokenAsync; public KiotaAccessTokenProvider( - Func> acquireTokenAsync, + Func> acquireTokenAsync, IEnumerable? allowedHosts) { _acquireTokenAsync = acquireTokenAsync ?? throw new ArgumentNullException(nameof(acquireTokenAsync)); diff --git a/src/Phoenix.ApiWrapper/PhoenixApiClient.cs b/src/Phoenix.ApiWrapper/PhoenixApiClient.cs index b8952b3..f6964b7 100644 --- a/src/Phoenix.ApiWrapper/PhoenixApiClient.cs +++ b/src/Phoenix.ApiWrapper/PhoenixApiClient.cs @@ -4,6 +4,7 @@ using Microsoft.Kiota.Abstractions; using Microsoft.Kiota.Abstractions.Authentication; using Microsoft.Kiota.Http.HttpClientLibrary; +using Phoenix.ApiWrapper.Entities; namespace Phoenix.ApiWrapper; @@ -15,7 +16,7 @@ public sealed class PhoenixApiClient private readonly PhoenixApiClientOptions _options; private readonly ConcurrentDictionary _tokenCache = new(); - + private Phoenix.GalaxyLife.Api.ApiClient? _galaxyLife; public PhoenixApiClient(HttpClient oauthHttpClient, PhoenixApiClientOptions options) @@ -30,7 +31,7 @@ public PhoenixApiClient(HttpClient oauthHttpClient, PhoenixApiClientOptions opti if (string.IsNullOrWhiteSpace(_options.ClientSecret)) throw new ArgumentException("ClientSecret must be configured.", nameof(options)); } - + /// /// Typed Kiota client for the GalaxyLife API using client-credentials. /// @@ -129,7 +130,7 @@ public async Task CreateAuthenticatedHttpClientOnBehalfOfAsync( client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Value); return client; } - + // -------------------- // Kiota adapter creation // -------------------- @@ -148,7 +149,7 @@ private IRequestAdapter CreateKiotaAdapterForClientCredentials(Uri apiBaseUrl, I return adapter; } - + private IRequestAdapter CreateKiotaAdapterOnBehalfOf(Uri apiBaseUrl, string subjectId, string subjectProvider, IEnumerable? scopes, string? audience) { var tokenProvider = new KiotaAccessTokenProvider( @@ -172,7 +173,6 @@ private string[] GetAllowedHosts(Uri apiBaseUrl) => // -------------------- // Token plumbing // -------------------- - private async Task GetOrCreateTokenAsync( string cacheKey, Func> factory, @@ -286,60 +286,4 @@ private static string StableHash(string value) return hash.ToString("X", System.Globalization.CultureInfo.InvariantCulture); } } - - // -------------------- - // Models / options - // -------------------- - - public sealed class PhoenixApiClientOptions - { - public Uri? TokenEndpoint { get; init; } - - public string ClientId { get; init; } = ""; - public string ClientSecret { get; init; } = ""; - - /// Default scopes used when none are provided to methods. - public string[] DefaultScopes { get; init; } = []; - - /// Enable RFC 8693 token exchange flows (only for allowed clients). - public bool EnableTokenExchange { get; init; } - - /// Defaults to access token type if not set. - public string? SubjectTokenType { get; init; } - - /// Optional requested_token_type (RFC 8693). - public string? RequestedTokenType { get; init; } - - /// How early we refresh before the token actually expires. - public TimeSpan ExpirySkew { get; init; } = TimeSpan.FromSeconds(60); - - /// If expires_in is missing/invalid, use this. - public int FallbackExpiresInSeconds { get; init; } = 300; - - public string[]? AllowedHosts { get; init; } - public Uri? GalaxyLifeBaseUrl { get; init; } - public string[] GalaxyLifeScopes { get; init; } = []; - } - - public sealed record AccessToken(string Value, DateTimeOffset ExpiresAtUtc, string TokenType, string? Scope); - - private sealed record CachedToken(AccessToken Token) - { - public bool IsExpired(TimeSpan skew) => DateTimeOffset.UtcNow >= Token.ExpiresAtUtc.Subtract(skew); - } - - private sealed class TokenEndpointResponse - { - public string? AccessToken { get; set; } - public int ExpiresIn { get; set; } - public string? TokenType { get; set; } - public string? Scope { get; set; } - - // JSON property names (web defaults will map snake_case if configured accordingly in future, - // but we keep this simple by matching common casing via JsonSerializerDefaults.Web) - public string? access_token { get => AccessToken; set => AccessToken = value; } - public int expires_in { get => ExpiresIn; set => ExpiresIn = value; } - public string? token_type { get => TokenType; set => TokenType = value; } - public string? scope { get => Scope; set => Scope = value; } - } } \ No newline at end of file From 30c8326ac4e2c959caa343320de1905f64a9b142 Mon Sep 17 00:00:00 2001 From: svr333 Date: Tue, 24 Feb 2026 14:59:19 +0100 Subject: [PATCH 07/10] Fix grant_type --- src/Phoenix.ApiWrapper/PhoenixApiClient.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Phoenix.ApiWrapper/PhoenixApiClient.cs b/src/Phoenix.ApiWrapper/PhoenixApiClient.cs index f6964b7..00960e7 100644 --- a/src/Phoenix.ApiWrapper/PhoenixApiClient.cs +++ b/src/Phoenix.ApiWrapper/PhoenixApiClient.cs @@ -17,7 +17,7 @@ public sealed class PhoenixApiClient private readonly ConcurrentDictionary _tokenCache = new(); - private Phoenix.GalaxyLife.Api.ApiClient? _galaxyLife; + private GalaxyLife.Api.ApiClient? _galaxyLife; public PhoenixApiClient(HttpClient oauthHttpClient, PhoenixApiClientOptions options) { @@ -35,15 +35,15 @@ public PhoenixApiClient(HttpClient oauthHttpClient, PhoenixApiClientOptions opti /// /// Typed Kiota client for the GalaxyLife API using client-credentials. /// - public Phoenix.GalaxyLife.Api.ApiClient GalaxyLife => - _galaxyLife ??= new Phoenix.GalaxyLife.Api.ApiClient( + public GalaxyLife.Api.ApiClient GalaxyLife => + _galaxyLife ??= new GalaxyLife.Api.ApiClient( CreateKiotaAdapterForClientCredentials(_options.GalaxyLifeBaseUrl, _options.GalaxyLifeScopes) ); /// /// Typed Kiota client for the GalaxyLife API using token exchange (on-behalf-of). /// - public Phoenix.GalaxyLife.Api.ApiClient GalaxyLifeOnBehalfOf(string subjectId, string subjectProvider) => + public GalaxyLife.Api.ApiClient GalaxyLifeOnBehalfOf(string subjectId, string subjectProvider) => new( CreateKiotaAdapterOnBehalfOf(_options.GalaxyLifeBaseUrl!, subjectId, subjectProvider, _options.GalaxyLifeScopes, audience: null) ); @@ -134,7 +134,6 @@ public async Task CreateAuthenticatedHttpClientOnBehalfOfAsync( // -------------------- // Kiota adapter creation // -------------------- - private IRequestAdapter CreateKiotaAdapterForClientCredentials(Uri apiBaseUrl, IEnumerable? scopes) { var tokenProvider = new KiotaAccessTokenProvider( @@ -211,7 +210,7 @@ private async Task RequestTokenExchangeAsync( { var form = new Dictionary { - ["grant_type"] = "urn:ietf:params:oauth:grant-type:token-exchange", + ["grant_type"] = "token-exchange", ["client_id"] = _options.ClientId, ["client_secret"] = _options.ClientSecret, ["subject_token"] = (await GetClientCredentialsTokenAsync()).Value, @@ -281,8 +280,12 @@ private static string StableHash(string value) unchecked { int hash = 23; + foreach (var ch in value) + { hash = (hash * 31) + ch; + } + return hash.ToString("X", System.Globalization.CultureInfo.InvariantCulture); } } From fdb0fe52f6fe8b1367c4874aadfe70dc65d56039 Mon Sep 17 00:00:00 2001 From: svr333 Date: Tue, 24 Feb 2026 15:18:41 +0100 Subject: [PATCH 08/10] Add PN Api document & Generate with Kiota --- .../Generated/PhoenixNetwork/ApiClient.cs | 48 + .../Models/AddEntitlementRequest.cs | 85 + .../Models/AddUserRoleRequest.cs | 75 + .../Generated/PhoenixNetwork/Models/BanDto.cs | 101 + .../PhoenixNetwork/Models/BanUserRequest.cs | 83 + .../Models/ChangeUserEmailRequest.cs | 75 + .../Models/ChangeUserNameRequest.cs | 75 + .../Models/CursorPagedResultOfUserDto.cs | 79 + .../Models/DeleteAvatarRequest.cs | 65 + .../PhoenixNetwork/Models/ErrorResponse.cs | 68 + .../PhoenixNetwork/Models/FriendshipDto.cs | 73 + .../Models/FriendshipErrorResponse.cs | 72 + .../PhoenixNetwork/Models/ProblemDetails.cs | 102 + .../Models/RemoveEntitlementRequest.cs | 75 + .../Models/RemoveUserRoleRequest.cs | 79 + .../PhoenixNetwork/Models/UnbanUserRequest.cs | 65 + .../Models/UpdatePreferencesRequest.cs | 59 + .../PhoenixNetwork/Models/UserDto.cs | 93 + .../Models/UserPreferencesDto.cs | 59 + .../ByUsername/ByUsernameRequestBuilder.cs | 48 + .../Item/WithUsernameItemRequestBuilder.cs | 91 + .../Users/Item/Avatar/AvatarRequestBuilder.cs | 95 + .../V1/Users/Item/Ban/BanRequestBuilder.cs | 96 + .../Item/Details/DetailsRequestBuilder.cs | 91 + .../Users/Item/Email/EmailRequestBuilder.cs | 95 + .../EntitlementsRequestBuilder.cs | 167 ++ .../Item/WithEntitlementItemRequestBuilder.cs | 96 + .../Item/Friends/FriendsRequestBuilder.cs | 92 + .../Roles/Item/WithRoleItemRequestBuilder.cs | 95 + .../Users/Item/Roles/RolesRequestBuilder.cs | 121 ++ .../Users/Item/Unban/UnbanRequestBuilder.cs | 95 + .../Item/Username/UsernameRequestBuilder.cs | 95 + .../Users/Item/WithUserItemRequestBuilder.cs | 145 ++ .../EntitlementsRequestBuilder.cs | 91 + .../Friends/Blocked/BlockedRequestBuilder.cs | 118 ++ .../Item/WithTargetItemRequestBuilder.cs | 137 ++ .../Users/Me/Friends/FriendsRequestBuilder.cs | 130 ++ .../Item/WithFriendItemRequestBuilder.cs | 90 + .../Requests/Ignore/IgnoreRequestBuilder.cs | 90 + .../Incoming/IncomingRequestBuilder.cs | 92 + .../Item/Accept/AcceptRequestBuilder.cs | 92 + .../Item/Cancel/CancelRequestBuilder.cs | 92 + .../Item/Ignore/IgnoreRequestBuilder.cs | 90 + .../Item/RequesterItemRequestBuilder.cs | 111 ++ .../Outgoing/OutgoingRequestBuilder.cs | 92 + .../Requests/RequestsRequestBuilder.cs | 79 + .../V1/Users/Me/MeRequestBuilder.cs | 109 + .../Preferences/PreferencesRequestBuilder.cs | 141 ++ .../V1/Users/UsersRequestBuilder.cs | 134 ++ .../PhoenixNetwork/V1/V1RequestBuilder.cs | 41 + .../Generated/PhoenixNetwork/kiota-lock.json | 34 + .../OpenApiDocuments/phoenix_api.json | 1758 +++++++++++++++++ .../Phoenix.ApiWrapper.csproj | 1 + 53 files changed, 6375 insertions(+) create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/ApiClient.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/AddEntitlementRequest.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/AddUserRoleRequest.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/BanDto.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/BanUserRequest.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ChangeUserEmailRequest.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ChangeUserNameRequest.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/CursorPagedResultOfUserDto.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/DeleteAvatarRequest.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ErrorResponse.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/FriendshipDto.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/FriendshipErrorResponse.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ProblemDetails.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/RemoveEntitlementRequest.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/RemoveUserRoleRequest.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UnbanUserRequest.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UpdatePreferencesRequest.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UserDto.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UserPreferencesDto.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/ByUsername/ByUsernameRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/ByUsername/Item/WithUsernameItemRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Avatar/AvatarRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Ban/BanRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Details/DetailsRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Email/EmailRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Entitlements/EntitlementsRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Entitlements/Item/WithEntitlementItemRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Friends/FriendsRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Roles/Item/WithRoleItemRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Roles/RolesRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Unban/UnbanRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Username/UsernameRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/WithUserItemRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Entitlements/EntitlementsRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Blocked/BlockedRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Blocked/Item/WithTargetItemRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/FriendsRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Item/WithFriendItemRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Ignore/IgnoreRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Incoming/IncomingRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Accept/AcceptRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Cancel/CancelRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Ignore/IgnoreRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/RequesterItemRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Outgoing/OutgoingRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/RequestsRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/MeRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Preferences/PreferencesRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/UsersRequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/V1RequestBuilder.cs create mode 100644 src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/kiota-lock.json create mode 100644 src/Phoenix.ApiWrapper/OpenApiDocuments/phoenix_api.json diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/ApiClient.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/ApiClient.cs new file mode 100644 index 0000000..8acce6b --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/ApiClient.cs @@ -0,0 +1,48 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions; +using Microsoft.Kiota.Serialization.Form; +using Microsoft.Kiota.Serialization.Json; +using Microsoft.Kiota.Serialization.Multipart; +using Microsoft.Kiota.Serialization.Text; +using Phoenix.Api.V1; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System; +namespace Phoenix.Api +{ + /// + /// The main entry point of the SDK, exposes the configuration and the fluent API. + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class ApiClient : BaseRequestBuilder + { + /// The v1 property + public global::Phoenix.Api.V1.V1RequestBuilder V1 + { + get => new global::Phoenix.Api.V1.V1RequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// The request adapter to use to execute the requests. + public ApiClient(IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}", new Dictionary()) + { + ApiClientBuilder.RegisterDefaultSerializer(); + ApiClientBuilder.RegisterDefaultSerializer(); + ApiClientBuilder.RegisterDefaultSerializer(); + ApiClientBuilder.RegisterDefaultSerializer(); + ApiClientBuilder.RegisterDefaultDeserializer(); + ApiClientBuilder.RegisterDefaultDeserializer(); + ApiClientBuilder.RegisterDefaultDeserializer(); + if (string.IsNullOrEmpty(RequestAdapter.BaseUrl)) + { + RequestAdapter.BaseUrl = "https://localhost:7137"; + } + PathParameters.TryAdd("baseurl", RequestAdapter.BaseUrl); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/AddEntitlementRequest.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/AddEntitlementRequest.cs new file mode 100644 index 0000000..42d99eb --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/AddEntitlementRequest.cs @@ -0,0 +1,85 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class AddEntitlementRequest : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The moderator_note property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? ModeratorNote { get; set; } +#nullable restore +#else + public string ModeratorNote { get; set; } +#endif + /// The type property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Type { get; set; } +#nullable restore +#else + public string Type { get; set; } +#endif + /// The value property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Value { get; set; } +#nullable restore +#else + public string Value { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public AddEntitlementRequest() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.AddEntitlementRequest CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.AddEntitlementRequest(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "moderator_note", n => { ModeratorNote = n.GetStringValue(); } }, + { "type", n => { Type = n.GetStringValue(); } }, + { "value", n => { Value = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("moderator_note", ModeratorNote); + writer.WriteStringValue("type", Type); + writer.WriteStringValue("value", Value); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/AddUserRoleRequest.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/AddUserRoleRequest.cs new file mode 100644 index 0000000..b049960 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/AddUserRoleRequest.cs @@ -0,0 +1,75 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class AddUserRoleRequest : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The moderator_note property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? ModeratorNote { get; set; } +#nullable restore +#else + public string ModeratorNote { get; set; } +#endif + /// The role property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Role { get; set; } +#nullable restore +#else + public string Role { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public AddUserRoleRequest() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.AddUserRoleRequest CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.AddUserRoleRequest(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "moderator_note", n => { ModeratorNote = n.GetStringValue(); } }, + { "role", n => { Role = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("moderator_note", ModeratorNote); + writer.WriteStringValue("role", Role); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/BanDto.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/BanDto.cs new file mode 100644 index 0000000..466c085 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/BanDto.cs @@ -0,0 +1,101 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class BanDto : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The bannedAt property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? BannedAt { get; set; } +#nullable restore +#else + public string BannedAt { get; set; } +#endif + /// The expiresAt property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? ExpiresAt { get; set; } +#nullable restore +#else + public string ExpiresAt { get; set; } +#endif + /// The id property + public long? Id { get; set; } + /// The moderatorId property + public long? ModeratorId { get; set; } + /// The moderatorNotes property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? ModeratorNotes { get; set; } +#nullable restore +#else + public string ModeratorNotes { get; set; } +#endif + /// The reason property + public int? Reason { get; set; } + /// The userId property + public long? UserId { get; set; } + /// + /// Instantiates a new and sets the default values. + /// + public BanDto() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.BanDto CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.BanDto(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "bannedAt", n => { BannedAt = n.GetStringValue(); } }, + { "expiresAt", n => { ExpiresAt = n.GetStringValue(); } }, + { "id", n => { Id = n.GetLongValue(); } }, + { "moderatorId", n => { ModeratorId = n.GetLongValue(); } }, + { "moderatorNotes", n => { ModeratorNotes = n.GetStringValue(); } }, + { "reason", n => { Reason = n.GetIntValue(); } }, + { "userId", n => { UserId = n.GetLongValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("bannedAt", BannedAt); + writer.WriteStringValue("expiresAt", ExpiresAt); + writer.WriteLongValue("id", Id); + writer.WriteLongValue("moderatorId", ModeratorId); + writer.WriteStringValue("moderatorNotes", ModeratorNotes); + writer.WriteIntValue("reason", Reason); + writer.WriteLongValue("userId", UserId); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/BanUserRequest.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/BanUserRequest.cs new file mode 100644 index 0000000..5d4e4ce --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/BanUserRequest.cs @@ -0,0 +1,83 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class BanUserRequest : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The duration property + public double? Duration { get; set; } + /// The moderator_note property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? ModeratorNote { get; set; } +#nullable restore +#else + public string ModeratorNote { get; set; } +#endif + /// The reason property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Reason { get; set; } +#nullable restore +#else + public string Reason { get; set; } +#endif + /// The type property + public int? Type { get; set; } + /// + /// Instantiates a new and sets the default values. + /// + public BanUserRequest() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.BanUserRequest CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.BanUserRequest(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "duration", n => { Duration = n.GetDoubleValue(); } }, + { "moderator_note", n => { ModeratorNote = n.GetStringValue(); } }, + { "reason", n => { Reason = n.GetStringValue(); } }, + { "type", n => { Type = n.GetIntValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteDoubleValue("duration", Duration); + writer.WriteStringValue("moderator_note", ModeratorNote); + writer.WriteStringValue("reason", Reason); + writer.WriteIntValue("type", Type); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ChangeUserEmailRequest.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ChangeUserEmailRequest.cs new file mode 100644 index 0000000..d61998c --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ChangeUserEmailRequest.cs @@ -0,0 +1,75 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class ChangeUserEmailRequest : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The email property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Email { get; set; } +#nullable restore +#else + public string Email { get; set; } +#endif + /// The moderator_note property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? ModeratorNote { get; set; } +#nullable restore +#else + public string ModeratorNote { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public ChangeUserEmailRequest() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.ChangeUserEmailRequest CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.ChangeUserEmailRequest(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "email", n => { Email = n.GetStringValue(); } }, + { "moderator_note", n => { ModeratorNote = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("email", Email); + writer.WriteStringValue("moderator_note", ModeratorNote); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ChangeUserNameRequest.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ChangeUserNameRequest.cs new file mode 100644 index 0000000..cca5e18 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ChangeUserNameRequest.cs @@ -0,0 +1,75 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class ChangeUserNameRequest : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The moderator_note property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? ModeratorNote { get; set; } +#nullable restore +#else + public string ModeratorNote { get; set; } +#endif + /// The username property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Username { get; set; } +#nullable restore +#else + public string Username { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public ChangeUserNameRequest() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.ChangeUserNameRequest CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.ChangeUserNameRequest(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "moderator_note", n => { ModeratorNote = n.GetStringValue(); } }, + { "username", n => { Username = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("moderator_note", ModeratorNote); + writer.WriteStringValue("username", Username); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/CursorPagedResultOfUserDto.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/CursorPagedResultOfUserDto.cs new file mode 100644 index 0000000..06eec93 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/CursorPagedResultOfUserDto.cs @@ -0,0 +1,79 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class CursorPagedResultOfUserDto : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The data property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public List? Data { get; set; } +#nullable restore +#else + public List Data { get; set; } +#endif + /// The limit property + public int? Limit { get; set; } + /// The next_cursor property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? NextCursor { get; set; } +#nullable restore +#else + public string NextCursor { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public CursorPagedResultOfUserDto() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.CursorPagedResultOfUserDto CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.CursorPagedResultOfUserDto(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "data", n => { Data = n.GetCollectionOfObjectValues(global::Phoenix.Api.Models.UserDto.CreateFromDiscriminatorValue)?.AsList(); } }, + { "limit", n => { Limit = n.GetIntValue(); } }, + { "next_cursor", n => { NextCursor = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteCollectionOfObjectValues("data", Data); + writer.WriteIntValue("limit", Limit); + writer.WriteStringValue("next_cursor", NextCursor); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/DeleteAvatarRequest.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/DeleteAvatarRequest.cs new file mode 100644 index 0000000..131d1ce --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/DeleteAvatarRequest.cs @@ -0,0 +1,65 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class DeleteAvatarRequest : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The moderator_note property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? ModeratorNote { get; set; } +#nullable restore +#else + public string ModeratorNote { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public DeleteAvatarRequest() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.DeleteAvatarRequest CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.DeleteAvatarRequest(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "moderator_note", n => { ModeratorNote = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("moderator_note", ModeratorNote); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ErrorResponse.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ErrorResponse.cs new file mode 100644 index 0000000..05cc2ae --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ErrorResponse.cs @@ -0,0 +1,68 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class ErrorResponse : ApiException, IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The errors property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public List? Errors { get; set; } +#nullable restore +#else + public List Errors { get; set; } +#endif + /// The primary error message. + public override string Message { get => base.Message; } + /// + /// Instantiates a new and sets the default values. + /// + public ErrorResponse() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.ErrorResponse CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.ErrorResponse(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "errors", n => { Errors = n.GetCollectionOfPrimitiveValues()?.AsList(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteCollectionOfPrimitiveValues("errors", Errors); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/FriendshipDto.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/FriendshipDto.cs new file mode 100644 index 0000000..13e51fa --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/FriendshipDto.cs @@ -0,0 +1,73 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class FriendshipDto : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The status property + public int? Status { get; set; } + /// The updated_at property + public DateTimeOffset? UpdatedAt { get; set; } + /// The user property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public global::Phoenix.Api.Models.UserDto? User { get; set; } +#nullable restore +#else + public global::Phoenix.Api.Models.UserDto User { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public FriendshipDto() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.FriendshipDto CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.FriendshipDto(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "status", n => { Status = n.GetIntValue(); } }, + { "updated_at", n => { UpdatedAt = n.GetDateTimeOffsetValue(); } }, + { "user", n => { User = n.GetObjectValue(global::Phoenix.Api.Models.UserDto.CreateFromDiscriminatorValue); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteIntValue("status", Status); + writer.WriteDateTimeOffsetValue("updated_at", UpdatedAt); + writer.WriteObjectValue("user", User); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/FriendshipErrorResponse.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/FriendshipErrorResponse.cs new file mode 100644 index 0000000..7ced8ba --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/FriendshipErrorResponse.cs @@ -0,0 +1,72 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class FriendshipErrorResponse : ApiException, IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The code property + public int? Code { get; set; } + /// The description property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Description { get; set; } +#nullable restore +#else + public string Description { get; set; } +#endif + /// The primary error message. + public override string Message { get => base.Message; } + /// + /// Instantiates a new and sets the default values. + /// + public FriendshipErrorResponse() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.FriendshipErrorResponse CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.FriendshipErrorResponse(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "code", n => { Code = n.GetIntValue(); } }, + { "description", n => { Description = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteIntValue("code", Code); + writer.WriteStringValue("description", Description); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ProblemDetails.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ProblemDetails.cs new file mode 100644 index 0000000..4acbb9f --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/ProblemDetails.cs @@ -0,0 +1,102 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class ProblemDetails : ApiException, IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The detail property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Detail { get; set; } +#nullable restore +#else + public string Detail { get; set; } +#endif + /// The instance property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Instance { get; set; } +#nullable restore +#else + public string Instance { get; set; } +#endif + /// The primary error message. + public override string Message { get => base.Message; } + /// The status property + public int? Status { get; set; } + /// The title property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Title { get; set; } +#nullable restore +#else + public string Title { get; set; } +#endif + /// The type property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Type { get; set; } +#nullable restore +#else + public string Type { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public ProblemDetails() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.ProblemDetails CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.ProblemDetails(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "detail", n => { Detail = n.GetStringValue(); } }, + { "instance", n => { Instance = n.GetStringValue(); } }, + { "status", n => { Status = n.GetIntValue(); } }, + { "title", n => { Title = n.GetStringValue(); } }, + { "type", n => { Type = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("detail", Detail); + writer.WriteStringValue("instance", Instance); + writer.WriteIntValue("status", Status); + writer.WriteStringValue("title", Title); + writer.WriteStringValue("type", Type); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/RemoveEntitlementRequest.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/RemoveEntitlementRequest.cs new file mode 100644 index 0000000..69779f7 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/RemoveEntitlementRequest.cs @@ -0,0 +1,75 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class RemoveEntitlementRequest : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The entitlement property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Entitlement { get; set; } +#nullable restore +#else + public string Entitlement { get; set; } +#endif + /// The moderator_note property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? ModeratorNote { get; set; } +#nullable restore +#else + public string ModeratorNote { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public RemoveEntitlementRequest() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.RemoveEntitlementRequest CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.RemoveEntitlementRequest(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "entitlement", n => { Entitlement = n.GetStringValue(); } }, + { "moderator_note", n => { ModeratorNote = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("entitlement", Entitlement); + writer.WriteStringValue("moderator_note", ModeratorNote); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/RemoveUserRoleRequest.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/RemoveUserRoleRequest.cs new file mode 100644 index 0000000..33323b0 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/RemoveUserRoleRequest.cs @@ -0,0 +1,79 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class RemoveUserRoleRequest : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The moderator_note property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? ModeratorNote { get; set; } +#nullable restore +#else + public string ModeratorNote { get; set; } +#endif + /// The role property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Role { get; set; } +#nullable restore +#else + public string Role { get; set; } +#endif + /// The user_id property + public long? UserId { get; set; } + /// + /// Instantiates a new and sets the default values. + /// + public RemoveUserRoleRequest() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.RemoveUserRoleRequest CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.RemoveUserRoleRequest(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "moderator_note", n => { ModeratorNote = n.GetStringValue(); } }, + { "role", n => { Role = n.GetStringValue(); } }, + { "user_id", n => { UserId = n.GetLongValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("moderator_note", ModeratorNote); + writer.WriteStringValue("role", Role); + writer.WriteLongValue("user_id", UserId); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UnbanUserRequest.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UnbanUserRequest.cs new file mode 100644 index 0000000..9616104 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UnbanUserRequest.cs @@ -0,0 +1,65 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class UnbanUserRequest : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The reason property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Reason { get; set; } +#nullable restore +#else + public string Reason { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public UnbanUserRequest() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.UnbanUserRequest CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.UnbanUserRequest(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "reason", n => { Reason = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("reason", Reason); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UpdatePreferencesRequest.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UpdatePreferencesRequest.cs new file mode 100644 index 0000000..2547fbd --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UpdatePreferencesRequest.cs @@ -0,0 +1,59 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class UpdatePreferencesRequest : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The friend_request property + public int? FriendRequest { get; set; } + /// + /// Instantiates a new and sets the default values. + /// + public UpdatePreferencesRequest() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.UpdatePreferencesRequest CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.UpdatePreferencesRequest(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "friend_request", n => { FriendRequest = n.GetIntValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteIntValue("friend_request", FriendRequest); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UserDto.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UserDto.cs new file mode 100644 index 0000000..e1cb1ac --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UserDto.cs @@ -0,0 +1,93 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class UserDto : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The avatar property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Avatar { get; set; } +#nullable restore +#else + public string Avatar { get; set; } +#endif + /// The id property + public long? Id { get; set; } + /// The isBanned property + public bool? IsBanned { get; set; } + /// The roles property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public List? Roles { get; set; } +#nullable restore +#else + public List Roles { get; set; } +#endif + /// The username property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Username { get; set; } +#nullable restore +#else + public string Username { get; set; } +#endif + /// + /// Instantiates a new and sets the default values. + /// + public UserDto() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.UserDto CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.UserDto(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "avatar", n => { Avatar = n.GetStringValue(); } }, + { "id", n => { Id = n.GetLongValue(); } }, + { "isBanned", n => { IsBanned = n.GetBoolValue(); } }, + { "roles", n => { Roles = n.GetCollectionOfPrimitiveValues()?.AsList(); } }, + { "username", n => { Username = n.GetStringValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("avatar", Avatar); + writer.WriteLongValue("id", Id); + writer.WriteBoolValue("isBanned", IsBanned); + writer.WriteCollectionOfPrimitiveValues("roles", Roles); + writer.WriteStringValue("username", Username); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UserPreferencesDto.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UserPreferencesDto.cs new file mode 100644 index 0000000..b859166 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/Models/UserPreferencesDto.cs @@ -0,0 +1,59 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using System.Collections.Generic; +using System.IO; +using System; +namespace Phoenix.Api.Models +{ + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class UserPreferencesDto : IAdditionalDataHolder, IParsable + #pragma warning restore CS1591 + { + /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. + public IDictionary AdditionalData { get; set; } + /// The friend_request property + public int? FriendRequest { get; set; } + /// + /// Instantiates a new and sets the default values. + /// + public UserPreferencesDto() + { + AdditionalData = new Dictionary(); + } + /// + /// Creates a new instance of the appropriate class based on discriminator value + /// + /// A + /// The parse node to use to read the discriminator value and create the object + public static global::Phoenix.Api.Models.UserPreferencesDto CreateFromDiscriminatorValue(IParseNode parseNode) + { + if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode)); + return new global::Phoenix.Api.Models.UserPreferencesDto(); + } + /// + /// The deserialization information for the current model + /// + /// A IDictionary<string, Action<IParseNode>> + public virtual IDictionary> GetFieldDeserializers() + { + return new Dictionary> + { + { "friend_request", n => { FriendRequest = n.GetIntValue(); } }, + }; + } + /// + /// Serializes information the current object + /// + /// Serialization writer to use to serialize this model + public virtual void Serialize(ISerializationWriter writer) + { + if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteIntValue("friend_request", FriendRequest); + writer.WriteAdditionalData(AdditionalData); + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/ByUsername/ByUsernameRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/ByUsername/ByUsernameRequestBuilder.cs new file mode 100644 index 0000000..6d6a082 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/ByUsername/ByUsernameRequestBuilder.cs @@ -0,0 +1,48 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.V1.Users.ByUsername.Item; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System; +namespace Phoenix.Api.V1.Users.ByUsername +{ + /// + /// Builds and executes requests for operations under \v1\users\by-username + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class ByUsernameRequestBuilder : BaseRequestBuilder + { + /// Gets an item from the Phoenix.Api.v1.users.byUsername.item collection + /// Unique identifier of the item + /// A + public global::Phoenix.Api.V1.Users.ByUsername.Item.WithUsernameItemRequestBuilder this[string position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + urlTplParams.Add("username", position); + return new global::Phoenix.Api.V1.Users.ByUsername.Item.WithUsernameItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public ByUsernameRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/by-username", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public ByUsernameRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/by-username", rawUrl) + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/ByUsername/Item/WithUsernameItemRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/ByUsername/Item/WithUsernameItemRequestBuilder.cs new file mode 100644 index 0000000..2bea922 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/ByUsername/Item/WithUsernameItemRequestBuilder.cs @@ -0,0 +1,91 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.ByUsername.Item +{ + /// + /// Builds and executes requests for operations under \v1\users\by-username\{username} + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithUsernameItemRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public WithUsernameItemRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/by-username/{username}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public WithUsernameItemRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/by-username/{username}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendAsync(requestInfo, global::Phoenix.Api.Models.UserDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.ByUsername.Item.WithUsernameItemRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.ByUsername.Item.WithUsernameItemRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithUsernameItemRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Avatar/AvatarRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Avatar/AvatarRequestBuilder.cs new file mode 100644 index 0000000..115b008 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Avatar/AvatarRequestBuilder.cs @@ -0,0 +1,95 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Avatar +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\avatar + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class AvatarRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public AvatarRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/avatar", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public AvatarRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/avatar", rawUrl) + { + } + /// The request body + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 400 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task DeleteAsync(global::Phoenix.Api.Models.DeleteAvatarRequest body, Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task DeleteAsync(global::Phoenix.Api.Models.DeleteAvatarRequest body, Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = ToDeleteRequestInformation(body, requestConfiguration); + var errorMapping = new Dictionary> + { + { "400", global::Phoenix.Api.Models.ErrorResponse.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// The request body + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToDeleteRequestInformation(global::Phoenix.Api.Models.DeleteAvatarRequest body, Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToDeleteRequestInformation(global::Phoenix.Api.Models.DeleteAvatarRequest body, Action> requestConfiguration = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = new RequestInformation(Method.DELETE, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Avatar.AvatarRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Avatar.AvatarRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class AvatarRequestBuilderDeleteRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Ban/BanRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Ban/BanRequestBuilder.cs new file mode 100644 index 0000000..79ebe48 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Ban/BanRequestBuilder.cs @@ -0,0 +1,96 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Ban +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\ban + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class BanRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public BanRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/ban", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public BanRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/ban", rawUrl) + { + } + /// A + /// The request body + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 400 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PostAsync(global::Phoenix.Api.Models.BanUserRequest body, Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PostAsync(global::Phoenix.Api.Models.BanUserRequest body, Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = ToPostRequestInformation(body, requestConfiguration); + var errorMapping = new Dictionary> + { + { "400", global::Phoenix.Api.Models.ErrorResponse.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendAsync(requestInfo, global::Phoenix.Api.Models.BanDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// The request body + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPostRequestInformation(global::Phoenix.Api.Models.BanUserRequest body, Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPostRequestInformation(global::Phoenix.Api.Models.BanUserRequest body, Action> requestConfiguration = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = new RequestInformation(Method.POST, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Ban.BanRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Ban.BanRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class BanRequestBuilderPostRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Details/DetailsRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Details/DetailsRequestBuilder.cs new file mode 100644 index 0000000..6b14dcb --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Details/DetailsRequestBuilder.cs @@ -0,0 +1,91 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Details +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\details + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class DetailsRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public DetailsRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/details", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public DetailsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/details", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendAsync(requestInfo, global::Phoenix.Api.Models.UserDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Details.DetailsRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Details.DetailsRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class DetailsRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Email/EmailRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Email/EmailRequestBuilder.cs new file mode 100644 index 0000000..ce55c71 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Email/EmailRequestBuilder.cs @@ -0,0 +1,95 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Email +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\email + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class EmailRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public EmailRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/email", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public EmailRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/email", rawUrl) + { + } + /// The request body + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 400 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PatchAsync(global::Phoenix.Api.Models.ChangeUserEmailRequest body, Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PatchAsync(global::Phoenix.Api.Models.ChangeUserEmailRequest body, Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = ToPatchRequestInformation(body, requestConfiguration); + var errorMapping = new Dictionary> + { + { "400", global::Phoenix.Api.Models.ErrorResponse.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// The request body + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPatchRequestInformation(global::Phoenix.Api.Models.ChangeUserEmailRequest body, Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPatchRequestInformation(global::Phoenix.Api.Models.ChangeUserEmailRequest body, Action> requestConfiguration = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = new RequestInformation(Method.PATCH, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Email.EmailRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Email.EmailRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class EmailRequestBuilderPatchRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Entitlements/EntitlementsRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Entitlements/EntitlementsRequestBuilder.cs new file mode 100644 index 0000000..7b7ac78 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Entitlements/EntitlementsRequestBuilder.cs @@ -0,0 +1,167 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using Phoenix.Api.V1.Users.Item.Entitlements.Item; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Entitlements +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\entitlements + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class EntitlementsRequestBuilder : BaseRequestBuilder + { + /// Gets an item from the Phoenix.Api.v1.users.item.entitlements.item collection + /// Unique identifier of the item + /// A + public global::Phoenix.Api.V1.Users.Item.Entitlements.Item.WithEntitlementItemRequestBuilder this[long position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + urlTplParams.Add("entitlement", position); + return new global::Phoenix.Api.V1.Users.Item.Entitlements.Item.WithEntitlementItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// Gets an item from the Phoenix.Api.v1.users.item.entitlements.item collection + /// Unique identifier of the item + /// A + [Obsolete("This indexer is deprecated and will be removed in the next major version. Use the one with the typed parameter instead.")] + public global::Phoenix.Api.V1.Users.Item.Entitlements.Item.WithEntitlementItemRequestBuilder this[string position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + if (!string.IsNullOrWhiteSpace(position)) urlTplParams.Add("entitlement", position); + return new global::Phoenix.Api.V1.Users.Item.Entitlements.Item.WithEntitlementItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public EntitlementsRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/entitlements", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public EntitlementsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/entitlements", rawUrl) + { + } + /// A List<string> + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task?> GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task> GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + return collectionResult?.AsList(); + } + /// A + /// The request body + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PostAsync(global::Phoenix.Api.Models.AddEntitlementRequest body, Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PostAsync(global::Phoenix.Api.Models.AddEntitlementRequest body, Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = ToPostRequestInformation(body, requestConfiguration); + var errorMapping = new Dictionary> + { + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendPrimitiveAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// A + /// The request body + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPostRequestInformation(global::Phoenix.Api.Models.AddEntitlementRequest body, Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPostRequestInformation(global::Phoenix.Api.Models.AddEntitlementRequest body, Action> requestConfiguration = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = new RequestInformation(Method.POST, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Entitlements.EntitlementsRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Entitlements.EntitlementsRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class EntitlementsRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class EntitlementsRequestBuilderPostRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Entitlements/Item/WithEntitlementItemRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Entitlements/Item/WithEntitlementItemRequestBuilder.cs new file mode 100644 index 0000000..d9bfb4d --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Entitlements/Item/WithEntitlementItemRequestBuilder.cs @@ -0,0 +1,96 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Entitlements.Item +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\entitlements\{entitlement} + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithEntitlementItemRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public WithEntitlementItemRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/entitlements/{entitlement}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public WithEntitlementItemRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/entitlements/{entitlement}", rawUrl) + { + } + /// A + /// The request body + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task DeleteAsync(global::Phoenix.Api.Models.RemoveEntitlementRequest body, Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task DeleteAsync(global::Phoenix.Api.Models.RemoveEntitlementRequest body, Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = ToDeleteRequestInformation(body, requestConfiguration); + var errorMapping = new Dictionary> + { + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendPrimitiveAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// The request body + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToDeleteRequestInformation(global::Phoenix.Api.Models.RemoveEntitlementRequest body, Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToDeleteRequestInformation(global::Phoenix.Api.Models.RemoveEntitlementRequest body, Action> requestConfiguration = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = new RequestInformation(Method.DELETE, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Entitlements.Item.WithEntitlementItemRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Entitlements.Item.WithEntitlementItemRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithEntitlementItemRequestBuilderDeleteRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Friends/FriendsRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Friends/FriendsRequestBuilder.cs new file mode 100644 index 0000000..bf012ff --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Friends/FriendsRequestBuilder.cs @@ -0,0 +1,92 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Friends +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\friends + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class FriendsRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public FriendsRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/friends", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public FriendsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/friends", rawUrl) + { + } + /// A List<global::Phoenix.Api.Models.FriendshipDto> + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task?> GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task> GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + var collectionResult = await RequestAdapter.SendCollectionAsync(requestInfo, global::Phoenix.Api.Models.FriendshipDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + return collectionResult?.AsList(); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Friends.FriendsRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Friends.FriendsRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class FriendsRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Roles/Item/WithRoleItemRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Roles/Item/WithRoleItemRequestBuilder.cs new file mode 100644 index 0000000..9682237 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Roles/Item/WithRoleItemRequestBuilder.cs @@ -0,0 +1,95 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Roles.Item +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\roles\{role} + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithRoleItemRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public WithRoleItemRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/roles/{role}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public WithRoleItemRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/roles/{role}", rawUrl) + { + } + /// The request body + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 400 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task DeleteAsync(global::Phoenix.Api.Models.RemoveUserRoleRequest body, Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task DeleteAsync(global::Phoenix.Api.Models.RemoveUserRoleRequest body, Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = ToDeleteRequestInformation(body, requestConfiguration); + var errorMapping = new Dictionary> + { + { "400", global::Phoenix.Api.Models.ErrorResponse.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// The request body + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToDeleteRequestInformation(global::Phoenix.Api.Models.RemoveUserRoleRequest body, Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToDeleteRequestInformation(global::Phoenix.Api.Models.RemoveUserRoleRequest body, Action> requestConfiguration = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = new RequestInformation(Method.DELETE, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Roles.Item.WithRoleItemRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Roles.Item.WithRoleItemRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithRoleItemRequestBuilderDeleteRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Roles/RolesRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Roles/RolesRequestBuilder.cs new file mode 100644 index 0000000..4b8a81b --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Roles/RolesRequestBuilder.cs @@ -0,0 +1,121 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using Phoenix.Api.V1.Users.Item.Roles.Item; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Roles +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\roles + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class RolesRequestBuilder : BaseRequestBuilder + { + /// Gets an item from the Phoenix.Api.v1.users.item.roles.item collection + /// Unique identifier of the item + /// A + public global::Phoenix.Api.V1.Users.Item.Roles.Item.WithRoleItemRequestBuilder this[long position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + urlTplParams.Add("role", position); + return new global::Phoenix.Api.V1.Users.Item.Roles.Item.WithRoleItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// Gets an item from the Phoenix.Api.v1.users.item.roles.item collection + /// Unique identifier of the item + /// A + [Obsolete("This indexer is deprecated and will be removed in the next major version. Use the one with the typed parameter instead.")] + public global::Phoenix.Api.V1.Users.Item.Roles.Item.WithRoleItemRequestBuilder this[string position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + if (!string.IsNullOrWhiteSpace(position)) urlTplParams.Add("role", position); + return new global::Phoenix.Api.V1.Users.Item.Roles.Item.WithRoleItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public RolesRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/roles", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public RolesRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/roles", rawUrl) + { + } + /// The request body + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 400 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PostAsync(global::Phoenix.Api.Models.AddUserRoleRequest body, Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PostAsync(global::Phoenix.Api.Models.AddUserRoleRequest body, Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = ToPostRequestInformation(body, requestConfiguration); + var errorMapping = new Dictionary> + { + { "400", global::Phoenix.Api.Models.ErrorResponse.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// The request body + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPostRequestInformation(global::Phoenix.Api.Models.AddUserRoleRequest body, Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPostRequestInformation(global::Phoenix.Api.Models.AddUserRoleRequest body, Action> requestConfiguration = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = new RequestInformation(Method.POST, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Roles.RolesRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Roles.RolesRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class RolesRequestBuilderPostRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Unban/UnbanRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Unban/UnbanRequestBuilder.cs new file mode 100644 index 0000000..4fbaf6f --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Unban/UnbanRequestBuilder.cs @@ -0,0 +1,95 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Unban +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\unban + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class UnbanRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public UnbanRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/unban", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public UnbanRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/unban", rawUrl) + { + } + /// The request body + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 400 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PostAsync(global::Phoenix.Api.Models.UnbanUserRequest body, Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PostAsync(global::Phoenix.Api.Models.UnbanUserRequest body, Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = ToPostRequestInformation(body, requestConfiguration); + var errorMapping = new Dictionary> + { + { "400", global::Phoenix.Api.Models.ErrorResponse.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// The request body + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPostRequestInformation(global::Phoenix.Api.Models.UnbanUserRequest body, Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPostRequestInformation(global::Phoenix.Api.Models.UnbanUserRequest body, Action> requestConfiguration = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = new RequestInformation(Method.POST, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Unban.UnbanRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Unban.UnbanRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class UnbanRequestBuilderPostRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Username/UsernameRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Username/UsernameRequestBuilder.cs new file mode 100644 index 0000000..5724060 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/Username/UsernameRequestBuilder.cs @@ -0,0 +1,95 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item.Username +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId}\username + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class UsernameRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public UsernameRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/username", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public UsernameRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}/username", rawUrl) + { + } + /// The request body + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 400 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PatchAsync(global::Phoenix.Api.Models.ChangeUserNameRequest body, Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PatchAsync(global::Phoenix.Api.Models.ChangeUserNameRequest body, Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = ToPatchRequestInformation(body, requestConfiguration); + var errorMapping = new Dictionary> + { + { "400", global::Phoenix.Api.Models.ErrorResponse.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// The request body + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPatchRequestInformation(global::Phoenix.Api.Models.ChangeUserNameRequest body, Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPatchRequestInformation(global::Phoenix.Api.Models.ChangeUserNameRequest body, Action> requestConfiguration = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = new RequestInformation(Method.PATCH, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.Username.UsernameRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.Username.UsernameRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class UsernameRequestBuilderPatchRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/WithUserItemRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/WithUserItemRequestBuilder.cs new file mode 100644 index 0000000..d5df894 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Item/WithUserItemRequestBuilder.cs @@ -0,0 +1,145 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using Phoenix.Api.V1.Users.Item.Avatar; +using Phoenix.Api.V1.Users.Item.Ban; +using Phoenix.Api.V1.Users.Item.Details; +using Phoenix.Api.V1.Users.Item.Email; +using Phoenix.Api.V1.Users.Item.Entitlements; +using Phoenix.Api.V1.Users.Item.Friends; +using Phoenix.Api.V1.Users.Item.Roles; +using Phoenix.Api.V1.Users.Item.Unban; +using Phoenix.Api.V1.Users.Item.Username; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Item +{ + /// + /// Builds and executes requests for operations under \v1\users\{userId} + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithUserItemRequestBuilder : BaseRequestBuilder + { + /// The avatar property + public global::Phoenix.Api.V1.Users.Item.Avatar.AvatarRequestBuilder Avatar + { + get => new global::Phoenix.Api.V1.Users.Item.Avatar.AvatarRequestBuilder(PathParameters, RequestAdapter); + } + /// The ban property + public global::Phoenix.Api.V1.Users.Item.Ban.BanRequestBuilder Ban + { + get => new global::Phoenix.Api.V1.Users.Item.Ban.BanRequestBuilder(PathParameters, RequestAdapter); + } + /// The details property + public global::Phoenix.Api.V1.Users.Item.Details.DetailsRequestBuilder Details + { + get => new global::Phoenix.Api.V1.Users.Item.Details.DetailsRequestBuilder(PathParameters, RequestAdapter); + } + /// The email property + public global::Phoenix.Api.V1.Users.Item.Email.EmailRequestBuilder Email + { + get => new global::Phoenix.Api.V1.Users.Item.Email.EmailRequestBuilder(PathParameters, RequestAdapter); + } + /// The entitlements property + public global::Phoenix.Api.V1.Users.Item.Entitlements.EntitlementsRequestBuilder Entitlements + { + get => new global::Phoenix.Api.V1.Users.Item.Entitlements.EntitlementsRequestBuilder(PathParameters, RequestAdapter); + } + /// The friends property + public global::Phoenix.Api.V1.Users.Item.Friends.FriendsRequestBuilder Friends + { + get => new global::Phoenix.Api.V1.Users.Item.Friends.FriendsRequestBuilder(PathParameters, RequestAdapter); + } + /// The roles property + public global::Phoenix.Api.V1.Users.Item.Roles.RolesRequestBuilder Roles + { + get => new global::Phoenix.Api.V1.Users.Item.Roles.RolesRequestBuilder(PathParameters, RequestAdapter); + } + /// The unban property + public global::Phoenix.Api.V1.Users.Item.Unban.UnbanRequestBuilder Unban + { + get => new global::Phoenix.Api.V1.Users.Item.Unban.UnbanRequestBuilder(PathParameters, RequestAdapter); + } + /// The username property + public global::Phoenix.Api.V1.Users.Item.Username.UsernameRequestBuilder Username + { + get => new global::Phoenix.Api.V1.Users.Item.Username.UsernameRequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public WithUserItemRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public WithUserItemRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/{userId}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendAsync(requestInfo, global::Phoenix.Api.Models.UserDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Item.WithUserItemRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Item.WithUserItemRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithUserItemRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Entitlements/EntitlementsRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Entitlements/EntitlementsRequestBuilder.cs new file mode 100644 index 0000000..cb319d2 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Entitlements/EntitlementsRequestBuilder.cs @@ -0,0 +1,91 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Entitlements +{ + /// + /// Builds and executes requests for operations under \v1\users\me\entitlements + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class EntitlementsRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public EntitlementsRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/entitlements", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public EntitlementsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/entitlements", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendAsync(requestInfo, global::Phoenix.Api.Models.UserPreferencesDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Entitlements.EntitlementsRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Entitlements.EntitlementsRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class EntitlementsRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Blocked/BlockedRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Blocked/BlockedRequestBuilder.cs new file mode 100644 index 0000000..91d98cc --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Blocked/BlockedRequestBuilder.cs @@ -0,0 +1,118 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using Phoenix.Api.V1.Users.Me.Friends.Blocked.Item; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Blocked +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\blocked + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class BlockedRequestBuilder : BaseRequestBuilder + { + /// Gets an item from the Phoenix.Api.v1.users.me.friends.blocked.item collection + /// Unique identifier of the item + /// A + public global::Phoenix.Api.V1.Users.Me.Friends.Blocked.Item.WithTargetItemRequestBuilder this[long position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + urlTplParams.Add("targetId", position); + return new global::Phoenix.Api.V1.Users.Me.Friends.Blocked.Item.WithTargetItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// Gets an item from the Phoenix.Api.v1.users.me.friends.blocked.item collection + /// Unique identifier of the item + /// A + [Obsolete("This indexer is deprecated and will be removed in the next major version. Use the one with the typed parameter instead.")] + public global::Phoenix.Api.V1.Users.Me.Friends.Blocked.Item.WithTargetItemRequestBuilder this[string position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + if (!string.IsNullOrWhiteSpace(position)) urlTplParams.Add("targetId", position); + return new global::Phoenix.Api.V1.Users.Me.Friends.Blocked.Item.WithTargetItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public BlockedRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/blocked", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public BlockedRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/blocked", rawUrl) + { + } + /// A List<global::Phoenix.Api.Models.FriendshipDto> + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task?> GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task> GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + var collectionResult = await RequestAdapter.SendCollectionAsync(requestInfo, global::Phoenix.Api.Models.FriendshipDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + return collectionResult?.AsList(); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.Blocked.BlockedRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.Blocked.BlockedRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class BlockedRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Blocked/Item/WithTargetItemRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Blocked/Item/WithTargetItemRequestBuilder.cs new file mode 100644 index 0000000..285ded3 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Blocked/Item/WithTargetItemRequestBuilder.cs @@ -0,0 +1,137 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Blocked.Item +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\blocked\{targetId} + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithTargetItemRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public WithTargetItemRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/blocked/{targetId}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public WithTargetItemRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/blocked/{targetId}", rawUrl) + { + } + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task DeleteAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task DeleteAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToDeleteRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 400 status code + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PostAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PostAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToPostRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "400", global::Phoenix.Api.Models.FriendshipErrorResponse.CreateFromDiscriminatorValue }, + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToDeleteRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToDeleteRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.DELETE, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPostRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPostRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.POST, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.Blocked.Item.WithTargetItemRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.Blocked.Item.WithTargetItemRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithTargetItemRequestBuilderDeleteRequestConfiguration : RequestConfiguration + { + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithTargetItemRequestBuilderPostRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/FriendsRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/FriendsRequestBuilder.cs new file mode 100644 index 0000000..1f1c7f1 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/FriendsRequestBuilder.cs @@ -0,0 +1,130 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using Phoenix.Api.V1.Users.Me.Friends.Blocked; +using Phoenix.Api.V1.Users.Me.Friends.Item; +using Phoenix.Api.V1.Users.Me.Friends.Requests; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class FriendsRequestBuilder : BaseRequestBuilder + { + /// The blocked property + public global::Phoenix.Api.V1.Users.Me.Friends.Blocked.BlockedRequestBuilder Blocked + { + get => new global::Phoenix.Api.V1.Users.Me.Friends.Blocked.BlockedRequestBuilder(PathParameters, RequestAdapter); + } + /// The requests property + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.RequestsRequestBuilder Requests + { + get => new global::Phoenix.Api.V1.Users.Me.Friends.Requests.RequestsRequestBuilder(PathParameters, RequestAdapter); + } + /// Gets an item from the Phoenix.Api.v1.users.me.friends.item collection + /// Unique identifier of the item + /// A + public global::Phoenix.Api.V1.Users.Me.Friends.Item.WithFriendItemRequestBuilder this[long position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + urlTplParams.Add("friendId", position); + return new global::Phoenix.Api.V1.Users.Me.Friends.Item.WithFriendItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// Gets an item from the Phoenix.Api.v1.users.me.friends.item collection + /// Unique identifier of the item + /// A + [Obsolete("This indexer is deprecated and will be removed in the next major version. Use the one with the typed parameter instead.")] + public global::Phoenix.Api.V1.Users.Me.Friends.Item.WithFriendItemRequestBuilder this[string position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + if (!string.IsNullOrWhiteSpace(position)) urlTplParams.Add("friendId", position); + return new global::Phoenix.Api.V1.Users.Me.Friends.Item.WithFriendItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public FriendsRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public FriendsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends", rawUrl) + { + } + /// A List<global::Phoenix.Api.Models.FriendshipDto> + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task?> GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task> GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + var collectionResult = await RequestAdapter.SendCollectionAsync(requestInfo, global::Phoenix.Api.Models.FriendshipDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + return collectionResult?.AsList(); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.FriendsRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.FriendsRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class FriendsRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Item/WithFriendItemRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Item/WithFriendItemRequestBuilder.cs new file mode 100644 index 0000000..3adb8e2 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Item/WithFriendItemRequestBuilder.cs @@ -0,0 +1,90 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Item +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\{friendId} + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithFriendItemRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public WithFriendItemRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/{friendId}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public WithFriendItemRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/{friendId}", rawUrl) + { + } + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task DeleteAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task DeleteAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToDeleteRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToDeleteRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToDeleteRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.DELETE, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.Item.WithFriendItemRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.Item.WithFriendItemRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class WithFriendItemRequestBuilderDeleteRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Ignore/IgnoreRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Ignore/IgnoreRequestBuilder.cs new file mode 100644 index 0000000..9338ab7 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Ignore/IgnoreRequestBuilder.cs @@ -0,0 +1,90 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Requests.Ignore +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\requests\ignore + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class IgnoreRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public IgnoreRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/ignore", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public IgnoreRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/ignore", rawUrl) + { + } + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PatchAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PatchAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToPatchRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPatchRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPatchRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.PATCH, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Ignore.IgnoreRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Ignore.IgnoreRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class IgnoreRequestBuilderPatchRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Incoming/IncomingRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Incoming/IncomingRequestBuilder.cs new file mode 100644 index 0000000..9370e20 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Incoming/IncomingRequestBuilder.cs @@ -0,0 +1,92 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Requests.Incoming +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\requests\incoming + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class IncomingRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public IncomingRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/incoming", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public IncomingRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/incoming", rawUrl) + { + } + /// A List<global::Phoenix.Api.Models.FriendshipDto> + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task?> GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task> GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + var collectionResult = await RequestAdapter.SendCollectionAsync(requestInfo, global::Phoenix.Api.Models.FriendshipDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + return collectionResult?.AsList(); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Incoming.IncomingRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Incoming.IncomingRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class IncomingRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Accept/AcceptRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Accept/AcceptRequestBuilder.cs new file mode 100644 index 0000000..2b2486c --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Accept/AcceptRequestBuilder.cs @@ -0,0 +1,92 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Accept +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\requests\{requester-id}\accept + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class AcceptRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public AcceptRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/{requester%2Did}/accept", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public AcceptRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/{requester%2Did}/accept", rawUrl) + { + } + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PatchAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PatchAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToPatchRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPatchRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPatchRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.PATCH, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Accept.AcceptRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Accept.AcceptRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class AcceptRequestBuilderPatchRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Cancel/CancelRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Cancel/CancelRequestBuilder.cs new file mode 100644 index 0000000..1472a66 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Cancel/CancelRequestBuilder.cs @@ -0,0 +1,92 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Cancel +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\requests\{requester-id}\cancel + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class CancelRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public CancelRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/{requester%2Did}/cancel", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public CancelRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/{requester%2Did}/cancel", rawUrl) + { + } + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task DeleteAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task DeleteAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToDeleteRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToDeleteRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToDeleteRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.DELETE, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Cancel.CancelRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Cancel.CancelRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class CancelRequestBuilderDeleteRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Ignore/IgnoreRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Ignore/IgnoreRequestBuilder.cs new file mode 100644 index 0000000..0fb692d --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/Ignore/IgnoreRequestBuilder.cs @@ -0,0 +1,90 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Ignore +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\requests\{requester-id}\ignore + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class IgnoreRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public IgnoreRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/{requester%2Did}/ignore", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public IgnoreRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/{requester%2Did}/ignore", rawUrl) + { + } + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PatchAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PatchAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToPatchRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPatchRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPatchRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.PATCH, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Ignore.IgnoreRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Ignore.IgnoreRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class IgnoreRequestBuilderPatchRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/RequesterItemRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/RequesterItemRequestBuilder.cs new file mode 100644 index 0000000..8cc09cf --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Item/RequesterItemRequestBuilder.cs @@ -0,0 +1,111 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Accept; +using Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Cancel; +using Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Ignore; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Requests.Item +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\requests\{requester-id} + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class RequesterItemRequestBuilder : BaseRequestBuilder + { + /// The accept property + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Accept.AcceptRequestBuilder Accept + { + get => new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Accept.AcceptRequestBuilder(PathParameters, RequestAdapter); + } + /// The cancel property + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Cancel.CancelRequestBuilder Cancel + { + get => new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Cancel.CancelRequestBuilder(PathParameters, RequestAdapter); + } + /// The ignore property + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Ignore.IgnoreRequestBuilder Ignore + { + get => new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.Ignore.IgnoreRequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public RequesterItemRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/{requester%2Did}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public RequesterItemRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/{requester%2Did}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 400 status code + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PostAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PostAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToPostRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "400", global::Phoenix.Api.Models.FriendshipErrorResponse.CreateFromDiscriminatorValue }, + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendAsync(requestInfo, global::Phoenix.Api.Models.FriendshipDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPostRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPostRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.POST, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.RequesterItemRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.RequesterItemRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class RequesterItemRequestBuilderPostRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Outgoing/OutgoingRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Outgoing/OutgoingRequestBuilder.cs new file mode 100644 index 0000000..667c5d5 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/Outgoing/OutgoingRequestBuilder.cs @@ -0,0 +1,92 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Requests.Outgoing +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\requests\outgoing + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class OutgoingRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public OutgoingRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/outgoing", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public OutgoingRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests/outgoing", rawUrl) + { + } + /// A List<global::Phoenix.Api.Models.FriendshipDto> + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task?> GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task> GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + var collectionResult = await RequestAdapter.SendCollectionAsync(requestInfo, global::Phoenix.Api.Models.FriendshipDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + return collectionResult?.AsList(); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Outgoing.OutgoingRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Outgoing.OutgoingRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class OutgoingRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/RequestsRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/RequestsRequestBuilder.cs new file mode 100644 index 0000000..bad2a08 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Friends/Requests/RequestsRequestBuilder.cs @@ -0,0 +1,79 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.V1.Users.Me.Friends.Requests.Ignore; +using Phoenix.Api.V1.Users.Me.Friends.Requests.Incoming; +using Phoenix.Api.V1.Users.Me.Friends.Requests.Item; +using Phoenix.Api.V1.Users.Me.Friends.Requests.Outgoing; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System; +namespace Phoenix.Api.V1.Users.Me.Friends.Requests +{ + /// + /// Builds and executes requests for operations under \v1\users\me\friends\requests + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class RequestsRequestBuilder : BaseRequestBuilder + { + /// The ignore property + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Ignore.IgnoreRequestBuilder Ignore + { + get => new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Ignore.IgnoreRequestBuilder(PathParameters, RequestAdapter); + } + /// The incoming property + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Incoming.IncomingRequestBuilder Incoming + { + get => new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Incoming.IncomingRequestBuilder(PathParameters, RequestAdapter); + } + /// The outgoing property + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Outgoing.OutgoingRequestBuilder Outgoing + { + get => new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Outgoing.OutgoingRequestBuilder(PathParameters, RequestAdapter); + } + /// Gets an item from the Phoenix.Api.v1.users.me.friends.requests.item collection + /// Unique identifier of the item + /// A + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.RequesterItemRequestBuilder this[long position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + urlTplParams.Add("requester%2Did", position); + return new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.RequesterItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// Gets an item from the Phoenix.Api.v1.users.me.friends.requests.item collection + /// Unique identifier of the item + /// A + [Obsolete("This indexer is deprecated and will be removed in the next major version. Use the one with the typed parameter instead.")] + public global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.RequesterItemRequestBuilder this[string position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + if (!string.IsNullOrWhiteSpace(position)) urlTplParams.Add("requester%2Did", position); + return new global::Phoenix.Api.V1.Users.Me.Friends.Requests.Item.RequesterItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public RequestsRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public RequestsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/friends/requests", rawUrl) + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/MeRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/MeRequestBuilder.cs new file mode 100644 index 0000000..dc114f7 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/MeRequestBuilder.cs @@ -0,0 +1,109 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using Phoenix.Api.V1.Users.Me.Entitlements; +using Phoenix.Api.V1.Users.Me.Friends; +using Phoenix.Api.V1.Users.Me.Preferences; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me +{ + /// + /// Builds and executes requests for operations under \v1\users\me + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class MeRequestBuilder : BaseRequestBuilder + { + /// The entitlements property + public global::Phoenix.Api.V1.Users.Me.Entitlements.EntitlementsRequestBuilder Entitlements + { + get => new global::Phoenix.Api.V1.Users.Me.Entitlements.EntitlementsRequestBuilder(PathParameters, RequestAdapter); + } + /// The friends property + public global::Phoenix.Api.V1.Users.Me.Friends.FriendsRequestBuilder Friends + { + get => new global::Phoenix.Api.V1.Users.Me.Friends.FriendsRequestBuilder(PathParameters, RequestAdapter); + } + /// The preferences property + public global::Phoenix.Api.V1.Users.Me.Preferences.PreferencesRequestBuilder Preferences + { + get => new global::Phoenix.Api.V1.Users.Me.Preferences.PreferencesRequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public MeRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public MeRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendAsync(requestInfo, global::Phoenix.Api.Models.UserDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.MeRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.MeRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class MeRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Preferences/PreferencesRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Preferences/PreferencesRequestBuilder.cs new file mode 100644 index 0000000..beaf764 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/Me/Preferences/PreferencesRequestBuilder.cs @@ -0,0 +1,141 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users.Me.Preferences +{ + /// + /// Builds and executes requests for operations under \v1\users\me\preferences + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class PreferencesRequestBuilder : BaseRequestBuilder + { + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public PreferencesRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/preferences", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public PreferencesRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users/me/preferences", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendAsync(requestInfo, global::Phoenix.Api.Models.UserPreferencesDto.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// The request body + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 401 status code + /// When receiving a 404 status code +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task PutAsync(global::Phoenix.Api.Models.UpdatePreferencesRequest body, Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task PutAsync(global::Phoenix.Api.Models.UpdatePreferencesRequest body, Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = ToPutRequestInformation(body, requestConfiguration); + var errorMapping = new Dictionary> + { + { "401", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + { "404", global::Phoenix.Api.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + await RequestAdapter.SendNoContentAsync(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// A + /// The request body + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToPutRequestInformation(global::Phoenix.Api.Models.UpdatePreferencesRequest body, Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToPutRequestInformation(global::Phoenix.Api.Models.UpdatePreferencesRequest body, Action> requestConfiguration = default) + { +#endif + if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body)); + var requestInfo = new RequestInformation(Method.PUT, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.Me.Preferences.PreferencesRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.Me.Preferences.PreferencesRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class PreferencesRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class PreferencesRequestBuilderPutRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/UsersRequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/UsersRequestBuilder.cs new file mode 100644 index 0000000..5c65929 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/Users/UsersRequestBuilder.cs @@ -0,0 +1,134 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.Models; +using Phoenix.Api.V1.Users.ByUsername; +using Phoenix.Api.V1.Users.Item; +using Phoenix.Api.V1.Users.Me; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Threading; +using System; +namespace Phoenix.Api.V1.Users +{ + /// + /// Builds and executes requests for operations under \v1\users + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class UsersRequestBuilder : BaseRequestBuilder + { + /// The byUsername property + public global::Phoenix.Api.V1.Users.ByUsername.ByUsernameRequestBuilder ByUsername + { + get => new global::Phoenix.Api.V1.Users.ByUsername.ByUsernameRequestBuilder(PathParameters, RequestAdapter); + } + /// The me property + public global::Phoenix.Api.V1.Users.Me.MeRequestBuilder Me + { + get => new global::Phoenix.Api.V1.Users.Me.MeRequestBuilder(PathParameters, RequestAdapter); + } + /// Gets an item from the Phoenix.Api.v1.users.item collection + /// Unique identifier of the item + /// A + public global::Phoenix.Api.V1.Users.Item.WithUserItemRequestBuilder this[long position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + urlTplParams.Add("userId", position); + return new global::Phoenix.Api.V1.Users.Item.WithUserItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// Gets an item from the Phoenix.Api.v1.users.item collection + /// Unique identifier of the item + /// A + [Obsolete("This indexer is deprecated and will be removed in the next major version. Use the one with the typed parameter instead.")] + public global::Phoenix.Api.V1.Users.Item.WithUserItemRequestBuilder this[string position] + { + get + { + var urlTplParams = new Dictionary(PathParameters); + if (!string.IsNullOrWhiteSpace(position)) urlTplParams.Add("userId", position); + return new global::Phoenix.Api.V1.Users.Item.WithUserItemRequestBuilder(urlTplParams, RequestAdapter); + } + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public UsersRequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users{?Cursor*,Limit*,Search*,Sort*}", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public UsersRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1/users{?Cursor*,Limit*,Search*,Sort*}", rawUrl) + { + } + /// A + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + return await RequestAdapter.SendAsync(requestInfo, global::Phoenix.Api.Models.CursorPagedResultOfUserDto.CreateFromDiscriminatorValue, default, cancellationToken).ConfigureAwait(false); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "application/json"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::Phoenix.Api.V1.Users.UsersRequestBuilder WithUrl(string rawUrl) + { + return new global::Phoenix.Api.V1.Users.UsersRequestBuilder(rawUrl, RequestAdapter); + } + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + #pragma warning disable CS1591 + public partial class UsersRequestBuilderGetQueryParameters + #pragma warning restore CS1591 + { + public long? Cursor { get; set; } + public int? Limit { get; set; } + public long? Search { get; set; } + public long? Sort { get; set; } + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class UsersRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/V1RequestBuilder.cs b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/V1RequestBuilder.cs new file mode 100644 index 0000000..0b2e307 --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/V1/V1RequestBuilder.cs @@ -0,0 +1,41 @@ +// +#pragma warning disable CS0618 +using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions; +using Phoenix.Api.V1.Users; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System; +namespace Phoenix.Api.V1 +{ + /// + /// Builds and executes requests for operations under \v1 + /// + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class V1RequestBuilder : BaseRequestBuilder + { + /// The users property + public global::Phoenix.Api.V1.Users.UsersRequestBuilder Users + { + get => new global::Phoenix.Api.V1.Users.UsersRequestBuilder(PathParameters, RequestAdapter); + } + /// + /// Instantiates a new and sets the default values. + /// + /// Path parameters for the request + /// The request adapter to use to execute the requests. + public V1RequestBuilder(Dictionary pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1", pathParameters) + { + } + /// + /// Instantiates a new and sets the default values. + /// + /// The raw URL to use for the request builder. + /// The request adapter to use to execute the requests. + public V1RequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/v1", rawUrl) + { + } + } +} +#pragma warning restore CS0618 diff --git a/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/kiota-lock.json b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/kiota-lock.json new file mode 100644 index 0000000..eb4c99a --- /dev/null +++ b/src/Phoenix.ApiWrapper/Generated/PhoenixNetwork/kiota-lock.json @@ -0,0 +1,34 @@ +{ + "descriptionHash": "BA09FB68FE86889C800BE6DE0A0D69DEE124D65126AF3139E31CA2E8B3DD90B81D4F6FE857C1B658B7041AD0DEB3DC05E35F57895FC821A1A32C9B4484984352", + "descriptionLocation": "../../OpenApiDocuments/phoenix_api.json", + "lockFileVersion": "1.0.0", + "kiotaVersion": "1.30.0", + "clientClassName": "ApiClient", + "typeAccessModifier": "Public", + "clientNamespaceName": "Phoenix.Api", + "language": "CSharp", + "usesBackingStore": false, + "excludeBackwardCompatible": false, + "includeAdditionalData": true, + "disableSSLValidation": false, + "serializers": [ + "Microsoft.Kiota.Serialization.Json.JsonSerializationWriterFactory", + "Microsoft.Kiota.Serialization.Text.TextSerializationWriterFactory", + "Microsoft.Kiota.Serialization.Form.FormSerializationWriterFactory", + "Microsoft.Kiota.Serialization.Multipart.MultipartSerializationWriterFactory" + ], + "deserializers": [ + "Microsoft.Kiota.Serialization.Json.JsonParseNodeFactory", + "Microsoft.Kiota.Serialization.Text.TextParseNodeFactory", + "Microsoft.Kiota.Serialization.Form.FormParseNodeFactory" + ], + "structuredMimeTypes": [ + "application/json", + "text/plain;q=0.9", + "application/x-www-form-urlencoded;q=0.2", + "multipart/form-data;q=0.1" + ], + "includePatterns": [], + "excludePatterns": [], + "disabledValidationRules": [] +} \ No newline at end of file diff --git a/src/Phoenix.ApiWrapper/OpenApiDocuments/phoenix_api.json b/src/Phoenix.ApiWrapper/OpenApiDocuments/phoenix_api.json new file mode 100644 index 0000000..3b83c6f --- /dev/null +++ b/src/Phoenix.ApiWrapper/OpenApiDocuments/phoenix_api.json @@ -0,0 +1,1758 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Phoenix Network API | v1", + "version": "1.0" + }, + "servers": [ + { + "url": "https://localhost:7137/" + } + ], + "paths": { + "/v1/users/{userId}/friends": { + "get": { + "tags": [ + "Friends" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FriendshipDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends": { + "get": { + "tags": [ + "Friends" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FriendshipDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends/requests/incoming": { + "get": { + "tags": [ + "Friends" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FriendshipDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends/requests/outgoing": { + "get": { + "tags": [ + "Friends" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FriendshipDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends/requests/{targetId}": { + "post": { + "tags": [ + "Friends" + ], + "parameters": [ + { + "name": "targetId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FriendshipDto" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FriendshipErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends/requests/{requesterId}/accept": { + "patch": { + "tags": [ + "Friends" + ], + "parameters": [ + { + "name": "requesterId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends/requests/{targetId}/cancel": { + "delete": { + "tags": [ + "Friends" + ], + "parameters": [ + { + "name": "targetId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends/requests/{requesterId}/ignore": { + "patch": { + "tags": [ + "Friends" + ], + "parameters": [ + { + "name": "requesterId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends/requests/ignore": { + "patch": { + "tags": [ + "Friends" + ], + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends/{friendId}": { + "delete": { + "tags": [ + "Friends" + ], + "parameters": [ + { + "name": "friendId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends/blocked": { + "get": { + "tags": [ + "Friends" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FriendshipDto" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/friends/blocked/{targetId}": { + "post": { + "tags": [ + "Friends" + ], + "parameters": [ + { + "name": "targetId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FriendshipErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Friends" + ], + "parameters": [ + { + "name": "targetId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users": { + "get": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "Limit", + "in": "query", + "schema": { + "maximum": 50, + "minimum": 1, + "type": "integer", + "format": "int32" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "pattern": "^(asc|desc)$", + "type": "integer", + "format": "int64" + } + }, + { + "name": "Cursor", + "in": "query", + "schema": { + "pattern": "^(asc|desc)$", + "type": "integer", + "format": "int64" + } + }, + { + "name": "Search", + "in": "query", + "schema": { + "pattern": "^(asc|desc)$", + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CursorPagedResultOfUserDto" + } + } + } + } + } + } + }, + "/v1/users/me": { + "get": { + "tags": [ + "Users" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/entitlements": { + "get": { + "tags": [ + "Users" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserPreferencesDto" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/me/preferences": { + "get": { + "tags": [ + "Users" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserPreferencesDto" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "put": { + "tags": [ + "Users" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePreferencesRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePreferencesRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UpdatePreferencesRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/{userId}": { + "get": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/{userId}/details": { + "get": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/{userId}/entitlements": { + "get": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + }, + "post": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddEntitlementRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AddEntitlementRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AddEntitlementRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/{userId}/entitlements/{entitlement}": { + "delete": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "entitlement", + "in": "path", + "required": true, + "schema": { + "pattern": "^(asc|desc)$", + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoveEntitlementRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/RemoveEntitlementRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RemoveEntitlementRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/by-username/{username}": { + "get": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "username", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } + }, + "/v1/users/{userId}/username": { + "patch": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeUserNameRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ChangeUserNameRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ChangeUserNameRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/v1/users/{userId}/email": { + "patch": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeUserEmailRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ChangeUserEmailRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ChangeUserEmailRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/v1/users/{userId}/avatar": { + "delete": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteAvatarRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/DeleteAvatarRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DeleteAvatarRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/v1/users/{userId}/roles": { + "post": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddUserRoleRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/AddUserRoleRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AddUserRoleRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/v1/users/{userId}/roles/{role}": { + "delete": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "pattern": "^(asc|desc)$", + "type": "integer", + "format": "int64" + } + }, + { + "name": "role", + "in": "path", + "required": true, + "schema": { + "pattern": "^(asc|desc)$", + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoveUserRoleRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/RemoveUserRoleRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RemoveUserRoleRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/v1/users/{userId}/ban": { + "post": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BanUserRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/BanUserRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/BanUserRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BanDto" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/v1/users/{userId}/unban": { + "post": { + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnbanUserRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/UnbanUserRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UnbanUserRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content", + "content": { + "application/json": { } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "AddEntitlementRequest": { + "required": [ + "type", + "value" + ], + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + }, + "moderator_note": { + "type": "string", + "nullable": true + } + } + }, + "AddUserRoleRequest": { + "required": [ + "role" + ], + "type": "object", + "properties": { + "role": { + "type": "string" + }, + "moderator_note": { + "type": "string", + "nullable": true + } + } + }, + "BanDto": { + "required": [ + "bannedAt" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "userId": { + "type": "integer", + "format": "int64" + }, + "reason": { + "$ref": "#/components/schemas/BanReasonType" + }, + "moderatorId": { + "type": "integer", + "format": "int64" + }, + "moderatorNotes": { + "type": "string", + "nullable": true + }, + "bannedAt": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "nullable": true + } + } + }, + "BanReasonType": { + "type": "integer" + }, + "BanUserRequest": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/BanReasonType" + }, + "reason": { + "type": "string", + "nullable": true + }, + "duration": { + "type": "number", + "format": "double", + "nullable": true + }, + "moderator_note": { + "type": "string", + "nullable": true + } + } + }, + "ChangeUserEmailRequest": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "moderator_note": { + "type": "string", + "nullable": true + } + } + }, + "ChangeUserNameRequest": { + "required": [ + "username" + ], + "type": "object", + "properties": { + "username": { + "maxLength": 20, + "minLength": 3, + "type": "string" + }, + "moderator_note": { + "type": "string", + "nullable": true + } + } + }, + "CursorPagedResultOfUserDto": { + "required": [ + "data", + "limit" + ], + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + }, + "next_cursor": { + "type": "string", + "nullable": true + }, + "limit": { + "type": "integer", + "format": "int32" + } + } + }, + "DeleteAvatarRequest": { + "type": "object", + "properties": { + "moderator_note": { + "type": "string", + "nullable": true + } + } + }, + "ErrorResponse": { + "required": [ + "errors" + ], + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "FriendRequestPreference": { + "type": "integer" + }, + "FriendshipDto": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/UserDto" + }, + "status": { + "$ref": "#/components/schemas/FriendshipStatus" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + }, + "FriendshipError": { + "type": "integer" + }, + "FriendshipErrorResponse": { + "required": [ + "code", + "description" + ], + "type": "object", + "properties": { + "code": { + "$ref": "#/components/schemas/FriendshipError" + }, + "description": { + "type": "string" + } + } + }, + "FriendshipStatus": { + "type": "integer" + }, + "ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "instance": { + "type": "string", + "nullable": true + } + } + }, + "RemoveEntitlementRequest": { + "required": [ + "entitlement" + ], + "type": "object", + "properties": { + "entitlement": { + "type": "string" + }, + "moderator_note": { + "type": "string", + "nullable": true + } + } + }, + "RemoveUserRoleRequest": { + "required": [ + "user_id", + "role" + ], + "type": "object", + "properties": { + "user_id": { + "type": "integer", + "format": "int64" + }, + "role": { + "type": "string" + }, + "moderator_note": { + "type": "string", + "nullable": true + } + } + }, + "UnbanUserRequest": { + "type": "object", + "properties": { + "reason": { + "type": "string", + "nullable": true + } + } + }, + "UpdatePreferencesRequest": { + "required": [ + "friend_request" + ], + "type": "object", + "properties": { + "friend_request": { + "$ref": "#/components/schemas/FriendRequestPreference" + } + } + }, + "UserDto": { + "required": [ + "id", + "username", + "avatar", + "roles" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "username": { + "type": "string" + }, + "avatar": { + "type": "string", + "nullable": true + }, + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "isBanned": { + "type": "boolean" + } + } + }, + "UserPreferencesDto": { + "type": "object", + "properties": { + "friend_request": { + "$ref": "#/components/schemas/FriendRequestPreference" + } + } + } + }, + "securitySchemes": { + "Bearer": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT" + } + } + }, + "security": [ + { + "Bearer": [ ] + } + ], + "tags": [ + { + "name": "Friends" + }, + { + "name": "Users" + } + ] +} \ No newline at end of file diff --git a/src/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj b/src/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj index ff952e3..32a0017 100644 --- a/src/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj +++ b/src/Phoenix.ApiWrapper/Phoenix.ApiWrapper.csproj @@ -33,6 +33,7 @@ + From 81996ed670d136f5ef20ece879e1ed98470f855e Mon Sep 17 00:00:00 2001 From: svr333 Date: Tue, 24 Feb 2026 22:42:15 +0100 Subject: [PATCH 09/10] Refactor messy code & OnBehalfOf is for Phoenix not GL --- src/Example/Program.cs | 3 +- .../Entities/PhoenixApiClientOptions.cs | 5 +- src/Phoenix.ApiWrapper/PhoenixApiClient.cs | 114 ++++++++++-------- 3 files changed, 70 insertions(+), 52 deletions(-) diff --git a/src/Example/Program.cs b/src/Example/Program.cs index 7386552..c1bfc30 100644 --- a/src/Example/Program.cs +++ b/src/Example/Program.cs @@ -10,8 +10,7 @@ TokenEndpoint = new Uri("https://accounts.phoenixnetwork.net/oauth/token"), ClientId = "your-client-id", ClientSecret = "your-client-secret", - GalaxyLifeBaseUrl = new Uri("https://api.galaxylifegame.net"), - GalaxyLifeScopes = [], + Scopes = [], }); var alliances = await phoenix.GalaxyLife.Alliances.GetPath.GetAsync(); diff --git a/src/Phoenix.ApiWrapper/Entities/PhoenixApiClientOptions.cs b/src/Phoenix.ApiWrapper/Entities/PhoenixApiClientOptions.cs index ef9ead1..99ed7ee 100644 --- a/src/Phoenix.ApiWrapper/Entities/PhoenixApiClientOptions.cs +++ b/src/Phoenix.ApiWrapper/Entities/PhoenixApiClientOptions.cs @@ -5,6 +5,7 @@ public sealed class PhoenixApiClientOptions public Uri? TokenEndpoint { get; init; } public string ClientId { get; init; } = ""; + public string ClientSecret { get; init; } = ""; /// Default scopes used when none are provided to methods. @@ -26,6 +27,6 @@ public sealed class PhoenixApiClientOptions public int FallbackExpiresInSeconds { get; init; } = 300; public string[]? AllowedHosts { get; init; } - public Uri? GalaxyLifeBaseUrl { get; init; } - public string[] GalaxyLifeScopes { get; init; } = []; + + public string[] Scopes { get; init; } = []; } diff --git a/src/Phoenix.ApiWrapper/PhoenixApiClient.cs b/src/Phoenix.ApiWrapper/PhoenixApiClient.cs index 00960e7..49a65d9 100644 --- a/src/Phoenix.ApiWrapper/PhoenixApiClient.cs +++ b/src/Phoenix.ApiWrapper/PhoenixApiClient.cs @@ -10,43 +10,54 @@ namespace Phoenix.ApiWrapper; public sealed class PhoenixApiClient { - private static readonly JsonSerializerOptions JsonOptions = new(JsonSerializerDefaults.Web); + private static readonly JsonSerializerOptions s_jsonOptions = new(JsonSerializerDefaults.Web); + private static readonly Uri s_glBaseUrl = new Uri("https://api.galaxylifegame.net"); + private static readonly Uri s_pnBaseUrl = new Uri("https://api.phoenixnetwork.net"); private readonly HttpClient _oauthHttp; - private readonly PhoenixApiClientOptions _options; + private readonly PhoenixApiClientOptions _pnOptions; private readonly ConcurrentDictionary _tokenCache = new(); - private GalaxyLife.Api.ApiClient? _galaxyLife; + /// + /// The main way to interface with the Galaxy Life API. + /// + public GalaxyLife.Api.ApiClient GalaxyLife { get; } + + /// + /// The main way to interface with the Phoenix api. + /// + public Phoenix.Api.ApiClient Phoenix { get; } public PhoenixApiClient(HttpClient oauthHttpClient, PhoenixApiClientOptions options) { _oauthHttp = oauthHttpClient ?? throw new ArgumentNullException(nameof(oauthHttpClient)); - _options = options ?? throw new ArgumentNullException(nameof(options)); + _pnOptions = options ?? throw new ArgumentNullException(nameof(options)); - if (_options.TokenEndpoint is null) + if (_pnOptions.TokenEndpoint is null) + { throw new ArgumentException("TokenEndpoint must be configured.", nameof(options)); - if (string.IsNullOrWhiteSpace(_options.ClientId)) + } + + if (string.IsNullOrWhiteSpace(_pnOptions.ClientId)) + { throw new ArgumentException("ClientId must be configured.", nameof(options)); - if (string.IsNullOrWhiteSpace(_options.ClientSecret)) + } + + if (string.IsNullOrWhiteSpace(_pnOptions.ClientSecret)) + { throw new ArgumentException("ClientSecret must be configured.", nameof(options)); - } + } - /// - /// Typed Kiota client for the GalaxyLife API using client-credentials. - /// - public GalaxyLife.Api.ApiClient GalaxyLife => - _galaxyLife ??= new GalaxyLife.Api.ApiClient( - CreateKiotaAdapterForClientCredentials(_options.GalaxyLifeBaseUrl, _options.GalaxyLifeScopes) - ); + GalaxyLife = new GalaxyLife.Api.ApiClient(CreateGLRequestAdapter()); + Phoenix = new Phoenix.Api.ApiClient(CreateKiotaAdapterForClientCredentials(_pnOptions.Scopes)); + } /// /// Typed Kiota client for the GalaxyLife API using token exchange (on-behalf-of). /// - public GalaxyLife.Api.ApiClient GalaxyLifeOnBehalfOf(string subjectId, string subjectProvider) => - new( - CreateKiotaAdapterOnBehalfOf(_options.GalaxyLifeBaseUrl!, subjectId, subjectProvider, _options.GalaxyLifeScopes, audience: null) - ); + public Phoenix.Api.ApiClient PhoenixOnBehalfOf(string subjectId, string subjectProvider) => + new(CreateKiotaAdapterOnBehalfOf(subjectId, subjectProvider, _pnOptions.Scopes, audience: null)); /// /// Gets an access token using OAuth2 client credentials grant. @@ -56,12 +67,11 @@ public Task GetClientCredentialsTokenAsync( IEnumerable? scopes = null, CancellationToken cancellationToken = default) { - var scopeString = NormalizeScopes(scopes ?? _options.DefaultScopes); + var scopeString = NormalizeScopes(scopes ?? _pnOptions.DefaultScopes); var cacheKey = $"cc|{scopeString}"; return GetOrCreateTokenAsync( cacheKey, - () => RequestClientCredentialsTokenAsync(scopeString, cancellationToken), - cancellationToken); + () => RequestClientCredentialsTokenAsync(scopeString, cancellationToken)); } /// @@ -75,20 +85,19 @@ public Task ExchangeOnBehalfOfAsync( string? audience = null, CancellationToken cancellationToken = default) { - if (!_options.EnableTokenExchange) + if (!_pnOptions.EnableTokenExchange) throw new InvalidOperationException("Token exchange is not enabled for this client configuration."); if (string.IsNullOrWhiteSpace(subjectId)) throw new ArgumentException("Subject id must be provided.", nameof(subjectId)); - var scopeString = NormalizeScopes(scopes ?? _options.DefaultScopes); + var scopeString = NormalizeScopes(scopes ?? _pnOptions.DefaultScopes); var subjectHash = StableHash(subjectId); var cacheKey = $"xchg|{scopeString}|{audience}|{subjectHash}"; return GetOrCreateTokenAsync( cacheKey, - () => RequestTokenExchangeAsync(subjectId, subjectProvider, scopeString, audience, cancellationToken), - cancellationToken); + () => RequestTokenExchangeAsync(subjectId, subjectProvider, scopeString, audience, cancellationToken)); } /// @@ -134,39 +143,49 @@ public async Task CreateAuthenticatedHttpClientOnBehalfOfAsync( // -------------------- // Kiota adapter creation // -------------------- - private IRequestAdapter CreateKiotaAdapterForClientCredentials(Uri apiBaseUrl, IEnumerable? scopes) + private IRequestAdapter CreateGLRequestAdapter() + { + var auth = new AnonymousAuthenticationProvider(); + + return new HttpClientRequestAdapter(auth) + { + BaseUrl = s_glBaseUrl.ToString().TrimEnd('/') + }; + } + + private IRequestAdapter CreateKiotaAdapterForClientCredentials(IEnumerable? scopes) { var tokenProvider = new KiotaAccessTokenProvider( acquireTokenAsync: ct => GetClientCredentialsTokenAsync(scopes, ct), - allowedHosts: GetAllowedHosts(apiBaseUrl)); + allowedHosts: GetAllowedHosts(s_pnBaseUrl)); var authProvider = new BaseBearerTokenAuthenticationProvider(tokenProvider); var adapter = new HttpClientRequestAdapter(authProvider) { - BaseUrl = apiBaseUrl.ToString().TrimEnd('/') + BaseUrl = s_pnBaseUrl.ToString().TrimEnd('/') }; return adapter; } - private IRequestAdapter CreateKiotaAdapterOnBehalfOf(Uri apiBaseUrl, string subjectId, string subjectProvider, IEnumerable? scopes, string? audience) + private IRequestAdapter CreateKiotaAdapterOnBehalfOf(string subjectId, string subjectProvider, IEnumerable? scopes, string? audience) { var tokenProvider = new KiotaAccessTokenProvider( acquireTokenAsync: ct => ExchangeOnBehalfOfAsync(subjectId, subjectProvider, scopes, audience, ct), - allowedHosts: GetAllowedHosts(apiBaseUrl)); + allowedHosts: GetAllowedHosts(s_pnBaseUrl)); var authProvider = new BaseBearerTokenAuthenticationProvider(tokenProvider); var adapter = new HttpClientRequestAdapter(authProvider) { - BaseUrl = apiBaseUrl.ToString().TrimEnd('/') + BaseUrl = s_pnBaseUrl.ToString().TrimEnd('/') }; return adapter; } private string[] GetAllowedHosts(Uri apiBaseUrl) => - _options.AllowedHosts is { Length: > 0 } - ? _options.AllowedHosts + _pnOptions.AllowedHosts is { Length: > 0 } + ? _pnOptions.AllowedHosts : [apiBaseUrl.Host]; // -------------------- @@ -174,10 +193,9 @@ private string[] GetAllowedHosts(Uri apiBaseUrl) => // -------------------- private async Task GetOrCreateTokenAsync( string cacheKey, - Func> factory, - CancellationToken cancellationToken) + Func> factory) { - if (_tokenCache.TryGetValue(cacheKey, out var cached) && !cached.IsExpired(_options.ExpirySkew)) + if (_tokenCache.TryGetValue(cacheKey, out var cached) && !cached.IsExpired(_pnOptions.ExpirySkew)) return cached.Token; // Single-flight per key could be added later (SemaphoreSlim per key). @@ -191,8 +209,8 @@ private async Task RequestClientCredentialsTokenAsync(string scopeS var form = new Dictionary { ["grant_type"] = "client_credentials", - ["client_id"] = _options.ClientId, - ["client_secret"] = _options.ClientSecret, + ["client_id"] = _pnOptions.ClientId, + ["client_secret"] = _pnOptions.ClientSecret, }; if (!string.IsNullOrWhiteSpace(scopeString)) @@ -211,10 +229,10 @@ private async Task RequestTokenExchangeAsync( var form = new Dictionary { ["grant_type"] = "token-exchange", - ["client_id"] = _options.ClientId, - ["client_secret"] = _options.ClientSecret, + ["client_id"] = _pnOptions.ClientId, + ["client_secret"] = _pnOptions.ClientSecret, ["subject_token"] = (await GetClientCredentialsTokenAsync()).Value, - ["subject_token_type"] = _options.SubjectTokenType ?? "access_token", + ["subject_token_type"] = _pnOptions.SubjectTokenType ?? "access_token", ["subject_id"] = subjectId, ["subject_provider"] = subjectProvider, }; @@ -225,15 +243,15 @@ private async Task RequestTokenExchangeAsync( if (!string.IsNullOrWhiteSpace(audience)) form["audience"] = audience; - if (!string.IsNullOrWhiteSpace(_options.RequestedTokenType)) - form["requested_token_type"] = _options.RequestedTokenType; + if (!string.IsNullOrWhiteSpace(_pnOptions.RequestedTokenType)) + form["requested_token_type"] = _pnOptions.RequestedTokenType; return await RequestTokenAsync(form, cancellationToken).ConfigureAwait(false); } private async Task RequestTokenAsync(Dictionary form, CancellationToken cancellationToken) { - using var request = new HttpRequestMessage(HttpMethod.Post, _options.TokenEndpoint) + using var request = new HttpRequestMessage(HttpMethod.Post, _pnOptions.TokenEndpoint) { Content = new FormUrlEncodedContent(form) }; @@ -247,13 +265,13 @@ private async Task RequestTokenAsync(Dictionary for $"Token endpoint returned {(int)response.StatusCode} ({response.ReasonPhrase}). Payload: {payload}"); } - var token = JsonSerializer.Deserialize(payload, JsonOptions) + var token = JsonSerializer.Deserialize(payload, s_jsonOptions) ?? throw new InvalidOperationException("Token endpoint returned an empty response."); if (string.IsNullOrWhiteSpace(token.AccessToken)) throw new InvalidOperationException("Token endpoint response did not include access_token."); - var expiresInSeconds = token.ExpiresIn <= 0 ? _options.FallbackExpiresInSeconds : token.ExpiresIn; + var expiresInSeconds = token.ExpiresIn <= 0 ? _pnOptions.FallbackExpiresInSeconds : token.ExpiresIn; var expiresAt = DateTimeOffset.UtcNow.AddSeconds(expiresInSeconds); return new AccessToken(token.AccessToken, expiresAt, token.TokenType ?? "Bearer", token.Scope); @@ -289,4 +307,4 @@ private static string StableHash(string value) return hash.ToString("X", System.Globalization.CultureInfo.InvariantCulture); } } -} \ No newline at end of file +} From f735a278c763d128e8db864a2e23d5c39836ac36 Mon Sep 17 00:00:00 2001 From: svr333 Date: Tue, 24 Feb 2026 23:47:29 +0100 Subject: [PATCH 10/10] Add Todo --- src/Phoenix.ApiWrapper/PhoenixApiClient.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Phoenix.ApiWrapper/PhoenixApiClient.cs b/src/Phoenix.ApiWrapper/PhoenixApiClient.cs index 49a65d9..11bfe72 100644 --- a/src/Phoenix.ApiWrapper/PhoenixApiClient.cs +++ b/src/Phoenix.ApiWrapper/PhoenixApiClient.cs @@ -147,6 +147,8 @@ private IRequestAdapter CreateGLRequestAdapter() { var auth = new AnonymousAuthenticationProvider(); + // TODO: GL Header auth + return new HttpClientRequestAdapter(auth) { BaseUrl = s_glBaseUrl.ToString().TrimEnd('/')
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%0AE&$bca--ZRD(}|RKa|)VH=M&z| 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 Gvf^J7W*I>M literal 0 HcmV?d00001 diff --git a/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/SemanticSymbols.db b/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/SemanticSymbols.db new file mode 100644 index 0000000000000000000000000000000000000000..14547e976eaea6989cab814f458ae0290a2b2335 GIT binary patch literal 151552 zcmeFa31D1R^*?^!eRtme=1pcMTbs7iB~8;MZGlpuw52tWKO$t@WLk>1l6kOZ9B;Y1?+BvpL<-*wvfr$@p-#v8|2k)~(r^ z7*r>*V(oU6Hg4LsX6yFE=1mFzA=_BFW?kbZ+eqLqxY@XA`{v;Gs&r>}M=H~v?wZw; zzNo!*ZemB*frH78_C4*X)=kOIRDHsK^z0QIcC6W!nAMfKsG$+nC>>mNiEXUewAxMC z9y4z&8_dk=6i}sxX2!1*Ftd8ihBXl1YhWfo($C%8L<#l=a#z>tkytl3k?v^q_@uN1 zpOU3kE?FYE)t(Lv#<;sB-L9m z#G(4c&c^L$Y~Hawv32v##?@}fR4bP*mE1|iX=qKi^tNA|6?wljb_eC=t56YCtDDu{ z3fx4donyLMxp;AD;UqK30;*b3sJ{wXRHw8|nmf`h`+c#zu})Jf=grfu zl8cIEF!BKH*^OJb?^v-R@EQfWQJ2`Ut#Q-3#GXv=qFKKB)(z6oy19NiR4|k3$|RO1 z>Y&o|<|S73q>`CbZz7opZozl;COqO2iA*}tn>>_C5PQwZ-c+KuJK2&tHL*97>Fzys z{``wBx~ReTVGZe?w)up=VQ;3hV|wZ^I;ShyLAp)&b|<@9voImp?IGy(Y09Mcr@Ek% zAZi*ph@NEUG$L)~!S;^Ky!I}T;aBKMWcFf8nC$3CU(}meyM5atkHUl9-RYi8qBGr- zO0=cAQa#CzMDM}oUbNNKmcS&kWiNnXP~DFQgw>eao zzf=o4s&UimHRmMiO4hC;&lU7vU1C;2FV(w3f!P4&i7vp3zkt-Y-)nK{^#8rTg% zU#;D|bxq^CO*DYb%BetoV(Xf@(X|UHukWshl%M z+T}a0V0M=}a4^-?(m&Y?vSNURWaoIn%~@UO`nkQS1NCl`q*hLvB)!q}+RUQOrhGsv z{igC7Ev=uC;zpDhXdhXd+K}wc?Cilrc6)ngYDcD}WVidWot4E>j}Ds8mC99Oxnxu&T_eXVHT1x$<}D1O$&R;`741D=daBBECb0ZuC#f~3A{iKy7 z>5vp+?(VUss9}G5I+JYZNVjE0adr%Nr@U6YYYr!AiIVNWei46T#<>dGt$V%g2JNHW z?w<5MpXR%M=PHv)pR_U7rwyqj)TTL|>}hQ}ryHMw&T}VB0wIf!FClAt(w!?ZnPkg; zkd(_55*M!ladVC*aXXVe-S8@z-ll%22w4-42U-0V*H6lZ<~*>FEH(jT$zv@o-~V~n zLK2i}kTB+I?US%AlS+0rdDlWhcohgy$66McQDqMHf(A+oiBKw!r!nP4n^8|#}m)}-WY$ETwdIc_`-$sAV?v$g$DvZHrrx~r)l zDv**}9R*p7##%~#hi&OdX6XG$qqiaFEy|m6Wd*b~mtk03H;SYMlOxQHR&}&v-GrfX zZv;5DjXsXN30N>7yTXB_%~3>EbYkaAnigtJbSV(3YlT6^n43lZd>{`lAZMQq`R^P> zp{%D#+lm&p>!HP*H(a zy0t23-1sk{u_)ms$NdoKJWjKqRq2CWnI`XAD6p^qAydX$U;`8^KT|+Zw+vfv8Ebli zkpxo>CqggzC$sCAJy*HYxxvxQb3>Q$Gs5o*tH!tVA81c2mh^FUom636Y5qk1xqZx7 zubrd(Ui^>fkT2v<>mBNE)oanjDE+yL=yRlh`J!*KJ3;g(KqLK z($>Gw>t9?I&Y)|K3st#UYnG;=S9}v)Ci>*DmX$w zk_ZNY5^lfhxXPmRYOm7OL|<&IWfAnrkc+(v*Ajgb$C{Fy)eODXD?ctaoHwn`E%0(s zfd$1k33tkC6;a{lWz4M>eT!aed&AwQ_B%hfNTfB*t1cX)&B9$bij);uHk83ljv}U_ixywZrB{v4aj~y_jn0D$G&#IaxI0HtBtxtj?Ox%wk0Pp~(jT;B zw2sRV<9B(f6{G3uqOW|c8PA`>ms~I!$7Qt3`SwyG(cP({Z_QYXr0DW*xa(HUtrdM6 z|0N_ArMtxZMcpdgy4Ol&b|f13x=T4OO5)qhPz&LZ8y0=9d6XUQs5roG@-qdlQgjQq z<+X}>xa8z-sLID>PMEXSeyD(T-YMMO`WP>Pb1#YMOa0vW8FOC3W&Cek0^<@Gm%z9L z#w9Q=fpH0pOJH0A;}RH`z_Bo*PTac zZ==TftMf+YkTy!3 zed=GdDbiTuFsY?n)3`+cBvxMR_mucf)L92pJx8`Aar6L=zUt|1pf3y3|Jc(a_ES4{ z-&)Z)@%1*tTIm3j2*76wmTc>8W=+t0GKVvLs8W)OS|-_B5mw ztX~_u{PQ4jELn+S`-hd`_p@)=Uz9$nm#8vpMGKv4c3RNpD(^V1gFQ*Fu&pEAoa{LD z)a-Y4az{eYcS#%izaG=zizY}0Ew6_swq?t}Z)J{ONKES6HbQ=_Z&upxuCPAA{`T+B z?(%wfTLt)?G%44=yUNkKD|(M~wPaKMQ<`xndtQH!^rD_E`}gUxxrtTu%eM~vCeKqs z{3H@wmFKwfdhxshuC!}4{cweLK$`S#$kg&;Ty@7`%8M2So{URvMLk(DRae%>m8UIb zHT$4m>~>)6a}$k$*{om?lK;TIRvhQ*cF*XOJx5OS zeGN|XYu=Y?$t)|Rqbmx|&p+RDV(3ndQI`!g@m#?G_mL|Oc9(Jm1M0;-!LBKB4}tDOoFn`lR$T_=(b+S#@(YosOkA4E@% z(;VxAszm2ck6wv!;%?4Q3j;+kPLRdS$&LisabmG_ahar+O+6a<9Q#T3X8$nJYUkW0 zbyMH+Qr@q`7+~L48NL9+M4xnjsV7Ir=RhnC1)?b|L6t$mqS2w%%CYJBl@+CkEy1RB zOQn5&g>^Z5xzvOIaxO6_oN4CVr`Mb7`h6ti;tdY^TQwt%L7`XrN&mfnIqAi`rhBH5 zW5(;V#(sjc%xL>HeN%nEVWsou_YVO{qPLVI49s3xP^NsrQtH|J z3M-fN{6{qiEf0~a7d~8oTK;vJxZRSUXAc)vo;4DG?=Dt>-krB3>+z*d{;Ko8{+ZxF zdE{n@1ItTP*E*$6{l!Y7$I_o;x9BBmm6V&iK`9$Zxm$j`NLNmf+SLzLYCA3U1MG_> zNgqi^bcU!OVpF}f6LkiA?abtUh?|4N9~(k_M(8GXL#ToMMWh6wGpk1foj=j>ukv?h zi>-=iW>*V^Julj1LSs)H4Ky$UI@B;o_^0Q{C#v#lb_M@6`;qA6FxN|$WbtUPU3w+- zQ2KZqzoe3XSp6ZNqU~vtfNtZ)>@;D>&cbRu(HF*bvfGJkrMnf^3im`@%iT&`;}_!+ zI}exeX}H)mc>ga&_zTSWgYygLDd)ePFFT)cJ{(>eUKp+oSBLGeWdFhbh5eNM-}aa7 z&)6R}6#dWouk;`5-_gIUe_FraTyCCd)|nGc$CQm%j2Dd`8;==ZH9lv2)Of$~F5?>K z4(FZDTbxUs15V1>yvt@Tsu2iDj1GF@n|Xum`(fp2U7 zr9GhCr`@i-J#4&~DIbwL;Cx4m0pk1L|r0vtr*S2V@w3D@ZZIV`|3F|@Y6V~0dLcK`cr=G8FQCF!atMzJ) z>Zr2vitY^XV1Leo{}jLtugqt!^DJXayg&FejQ{c z{+cJ)uY$~k=h=tYi$SL941N>)WsoUPH z`*x5~9+m|AR*(sOgngGi8f3(K*<E5_7nEyAY)%EeV9EQWUM!{Kd}D_GWrqe zIrdPH(Y8w!?EeHAWj1?1`%;jRpJQKT5BizP_-YXIMW2Am*p`*-3jrMc*(&z=pi>oO4Y=^&%0LCmLujCLl7c_7Frwd{8GpFsx1Jj6cf zXDZ@d()-vad;%(Bht{%>XJK_6`;VYf+1GHC?Z<*lGnU+3e0BqdyC2-VtQ9yQBv8z96F z$Owmho89hbocIaS&Fnos0Z#1Hwd}S4j(&X|yEUj(c0HHbEkP!74;1*_LB{Tp?qfFx z8S4OhiM=bx=qc%0c2khiR!K4T&LE>qMmOCUWaJ;Co8IAP%(y1q$ZqfnFk|tR?Ck*@ zy>}J6KB!cdmj1%t7GxsVuqW7cLB>8;x|_W<$XHG6x9r*=qi>U*X4eE6?IbC}t`0Iv zjNQWC5@h5j*caKG{Y)tG7iklFQ;>0vKsT=nGS;=yZgypmF~865W>*9myv&)G$E>*>+N}G=baP%Jb#AN~OJSgqHGz;tO?xO*0ogv+H zNdTJ%*drGQuzohX@kjux)7hsF2e7zas<|kD<%BfzkPmBR&q(JT4B$w;RFw%}d#bd% zH-N4E?Czcb*6)*UIuO9xW9*Uc09M}3K9LS!F^m16%ZJq{m(K4D;K(W|(GkG*VrlpO z0JdCq_r3tuza-t%9>Cf!*du!bSh=5lsx5%U3G7FEe0WmX-O`R!06YJXjMf0Q{x0oq z$-?W{-OT~4UnSj?3}Ee}?2!utSUJi*v^#)BHT(7jK0G<{cWM3k0qh)QKWPeJ>uu8R z^8(m>oZWqH0P9uKO}heETfrVVCxDe{?B<;TEWf}$f3^?Tlx3u?I|A7G0sF`H0Jff# zc5lnVGuho+0~iK%(^&zmUB@2T62MB5eQBa=e{^{OOJ6h&F7sg{-Xh())S#J}WW>@dPs@U0)smn_+1I4MoEpH9AF`jH z62SJmrH{NJfUO(Z9~TF(eueb2lLJ`0K&o66z{<(&j*|jd{w@3Ri9RgU)$DyI1hDus zdw5|0^LMgm7X+~Muu?Za3r|+Q-QdHrv6{a!FMzdH_RYBgtnOgnnG?XuT=wGZ07m=2 zs}ErLyX@InSvYDes0(1e&-l?yAD&p&D{ZR{VCVbnA2R~j`jNDIdKRu_cTWpoy;Ztt zY5;3*Wsf8RShvPl64b<8uWg2LKeo$&*}iC zca>EEOfT{(1DM``RRl1-I4Tcdda)7@V0z&Z^I@G{B}9F+I$j5q1t50xy_E%*blQ3M zRu+J1U)@_-0H$qlZ)E|PHjBNL1z_54^;Q;uX}i)}SpfES_X4c6|EBpcr#&n+fN4|6 zTUTItL%S{Bx&pAbB@)!3T?;u2V@H7#$z12sFq;+o^YI!Y71l?Rj#4~U!P z=j88WbzIKt`9$$o<#Wo7p+AY|LXU+$5{f&YG@o!bI47G|nceak^1|@Pj9>B(gbx@W zyT+Yi_oYmNB2__&ziu<&zX-Tt*Lte=~wnv?Zw^=|A7+^uQquhi4k8OjC9 z%Fy9ZlQ=3als_Zi#{a~BB>h8r)>`7+V(+w1weB%C>E+s=wY}jV+Rs`~no+$~yH$Ng ztx`@7Z9&9?xA8}%?;7ijlht>shm@aa+q7lsC%uL7BzY;%9r!eGSCZY{An)e%wS$4> zxxLl_udUd7bcm3uv)lTiTkGW=#hV!PMgtQfc_I&9@UVB+$V+&M*B0#Np>Dp*mM3vg z=)D+VHx0XiSl>Mlh3ENhR6O5s$9k!TiM%#^!i!ywxUlD=KO8>oL@H- zb8j8$=CuQOy=Fk}>I!*&Aua4J#f#rOUrzEOXOHGYF|gy`l+VCbL(zEUP&cm_K=K<0 zYj!NoCCo+t(SciBXFiBv-UE*;|DQ42p($|~O_`I(EW z5CGz+#`tLrdgK2Hl{OjE1GV2lIH(48dRT5chiW**%b- z>7F5Pd{xTQ!>QD@R6aJSr4jUSXC9XwLvXTxh>Hv%$H$iFf*pCJZy$oZZA0AKnosRn`I#;BR0)DM z4{>i3F;XHhK?z1S<}tEi2x8X{aqrB0+8gsTXV6on2pZzv+DYuT`^2Q}WxW_u9yY z@tQTD#kvXdDJAHbd7`|(U$Zte53B!c^Llc|5WO{hh9t0 z=2Jz&zm(A9Nt#?P(Q2S33rw6X?~;mr=MOCmQs)VILZ}{s(W)WtRp#?uk)J8|=3GTs ziI=(&8;J!+vkaGIfygke7;mHd=b+&sShI(?XXSHh=4Xte_No^x)d)k07yarG_mr?a zHBY}no{f2u#ducqSk23YrfRB=|Eh{T z01f}?@}9ld2h4nKJH82Vs#wsF?2vesEOkpfUd!Vek4Jc%^X6m&uj0HdDRI4)>l)W1 z*f-%Fsb#!Mk`bS66%o>!n$1O=PsFYZ?xC((%T0}&5pK#7+O5WJ3+~`Lm2+9@J)MU* z?@T#-vV<&`bw1SxCiBUhceO}-lEf9k6h)+Nf(Zpq0I%06_3x)Ep zaj%5)3~HMpJ`JpKZsICSdu6W7`y%b-^{@m`Z5&_QX7)E8vSH-O*mhL--B_ zsOgIGNhVKdd`1;|ht!+%3IV01PXr%@M`Qv5#4-Vu_$a(G#6#eX6MOjNSFVu)8(9wW zy?@BuhPl%TBfrW$L!h?s~32~P;nDtu&*Z77s16p*UplP%I^p`*ygCnyp&Bpt z*<6Wxsw+#W`P{|}YHC4hb9kA|%V1M7SyolKmxUcTe45E?qg;gfG^n4$t4uyIK?c_g z>FUBKO3DDQ2vGZEk_MuJPbT%N>}dx$l!XP#NyI^sh=B4a6voq*g2(Zl4QO}L@Z_3* zjR!^nD@~YuxDj-mhYOvqCN zuZfA_!b+07C)EHVYk5@T(FoDp-WK(cYrL+CC!mBqmdBcrca3{6EF`@O)-SguJ7Dm& z+|alY;Rc*!28sfzVN=-;ISKrW$@D)c_R4sLOdr3ZUoru5&X(kr2T#Kmd!k+^YP`M* z?m^z0PQjPdav5TX(33r>n5UWwS7lPugFRs$GQCeZ#3Hwo&R5D(a|2yFmXZ5Uc1fPB zg(tVEM1D(0o#)xWP*)vS(HiG_fU2yP6ss&k-Pm?8%BPxqhQ?=A@u{%hRv5bQJdni0 z_$WLq6Htba;who$7|Io1ZV+BF*Zi8WaJb_=miMrcca3{6tSiLT>MVOTL{qxU@_a&w z*M$OLwhwUL5Y66#%I$>;;8-4f%1KOzlBZL07#g6~a#iDM1ntWB`Aa=^>pd^dG0KuJ zKMZ}Z<(9^+2)8(I?wRb}P^hHOZ(1_as=R*Su92KrpiJ{($PKURV z5fqI5_}3qyN-IUg#yn{zFCsHlAUND3Je}`g+8F~$?pkI z`cpl1XpeerXnbZBpCU_X%kvrVTVT+?#yuE@1sN)}T+z4^AwQq#2yw02bBJ)3@JuTR zDW)H@xgO^UxJJ@DuwToC#zln2u(p)tv03Oe(0*5lE7jSdq=ry*CRb6?wI|9an|!Lq zYpZCm@9DHWbu{v>aSxW{?qrX{Cz^b6f=`65$viZVOkq#YDw6EpGz3wLpUrR*J#a#G zD(3Nu2uxUNsq;p9nvK+RJruA&-VZ9;4u4ebnHGk&8Ztsmu;8qP=dU4Dd}Pn}a-o*V zLWM{5R4*tqP-dVEmIQn98Wmx9S&%`Fw^#!-a>)1%rsEBw2|fw@MEMMp*J*rC6`uh$ zPS56QJQ&Mb_QLexa^WmNA{eJR-*WQ#sRNjQ2+!N&CO&W~KnNEnix6lcb;%ZKvd~cE zj}Klg3=S}3j8-1;1&>1p)US?bCmJu8dAY``%e^cFeCTwNb7#`>1`~`buqpo<_h5*& za~09roeptPot=!;khUD@c6hbPYZ9<3xi^(W5r$LrAanwqiE(2tjU=#k5eg=fz60(- z<j!KMhoKsBSX^Edp6n$H4SuszJl8LSr_7z{kPfxMya57y30Z8bU>)o^EM;S{11m zW^p7aBkvmbV9qZ}pH31!(q(uWoqvscC763BTUL>8>NPyB^RIEQ1gy;=Mw>AWDHFbe zXJ>TYNKIXm_0NH`GH3=)Q%j8Y_+ajbn&1Z3pN@JnUyV<%;x*8U&U&tdyr~ByN|PH2 zrbA;vIk`w;OrsHD@4+w^ruQkQUTKH7CZQR5*SH6J?t|uyAwDzY`O^@u_W{o5MT3%= zFtFwj*Q-4%P(15u148tx@2LDM*gy&NB8iFlJVJcnpu@{eUX}3X@hSKeI2TMgK{}QS zvJjXvP$q;hy+LUWNFQ8@G-4HDJ=i;k>=?gwc6g=9CnRVv?S-O?K-Yb{AZ3Ba@a@8z z#s`XJ%EE-Hkf-!C2_5LbR4}NL9%aoc?{UxRw0EF4Fct77z4^+QKgFdERCwH=vDBX} z=W1fGf(uMW`E--d)cEWwJ{@y_Fjq|PQ%=(8P0fY)WE>Q9Is_nJl2-<{iQD$tc*KZo zQp@aUETT8tR+VGf$(o6}wWKUkqn7QCltm(%qQnd%5?NalofT0damQY3$8_go%Jt5h0-y?`Q%?00Y{F9x zTSS!Lg)t@Ak`;PfT98S#YChDJX;*wGm1!5~oG|Jl!3zeC_zp?`ea=zmkkjq#b6TAXoO7J5_)h;? z=XB>(=Om}WndMA#YMcru;uwwy|0DdT@Jr!eg`W>U6MiE6-SDH~N5T(@V4$wLfWp#Jrv~g z)|af$SRc3Ux9+muW8H+`@xR$}t&6Q*tHVlJ7g#&3Emoto62G563BQ+^X-%=JtTM~6 zWb<$4AI#t2m-EkFd8K)od6C&|wwul7dFFO= zqq!ERD7?X3XwEjLn>A*+88%gu8Gklj!g&hM8BZDCH@;;&V*DTDv&JWk4;ddYZpXUZk5>No0d)vwZz>4)_LICr5%Z_;<@oAh=1>G~=92{?aYhCWHJ zfP#$wjZ0u$0^<@Gm%z9L{@;~==!?iKEQ>w|i6;8OeqtjrM4#o~Gm)sG&+ro+38Kzx zNMfQ-^$QihFyto!2?A`(eu6U#!j9;Zkf2S5q(ZpI{Nyquns6`mlcPu?!o37ZShyD> zDHHAyB&Ki=`^iN}4B;N~lY>YU;b#1#7YS`fTNI-59i7wm= z{bV;1P<8R?k*%C;v6K9%TE8^*?w+^pWBWElGx@aTan1Z zJqQ^h$JN34MACKB-1h-8*<&p?7I>-=OblIg--9b}ABJI0XqBdxM`WMuNsp_LD_O z(AY_Saw3v?;hum5JS_B+1xU~x^O2yj1|(=~o}bJ`g2v|f$!sL(m3lv!g=8KA*du{> zX8K7j5|BFs2^yP@1dUDelc`A1Si(=HAVGIb_LE6S>V#W^1e8tmlL<(s3AY*v8mmHr z#wz`!0tp%`_memhba>29qDW>6w+snnM)rq<>~E@Y$^Ot7*&iAs`$IzZhsMbMkdXaB zlga*&ko|!pvOhdW_J;?^{*aLU;Q_KgBxHY(HQ8U8AoHsiWPKq)##b)L_R0mBo+8Nd z6hVd;6=Zi&L1q^bWOY$NMz=_i&4mP+T)FTqjtou_WN(TfbDJ#4+9nG!w#9;MEhNa) z$^}_kxgbMR1lgH_!|ce+$jTCejBLIj8w&|Cv2sBcRxZfE6#R~vu4G1bka5)t zvaOIH(<&EaS>=KZOA%yOiXgKJ3$m)PAfuX#-!@ZyGO2Pw7F90DpcFy&qzE#nazWNq zF36bX3bLh;AX6$AWJ%?M3`r4WM~WabDi>r$<${c;QjiT*3Nj%>kOeV82BZqIA61a~ zR0^`5gdpRYDSX=@(_w-vXR08>2?^hB$ZX1mZ#85ziXfYD1euH@$YQDl8BCQRdkG0L zmnuQlGF6bVsDf-o7Gx?ykfrE?48;&+C#oPbQ3Y8^T#%8>6TXf3CgNL&Zy>&X_~zkT z2N_4b@NL644YG_G!Z!@xE_}1_t-?17vWci5lZXo6BFG@{Wi#*Un}cr+zA^Z=;G2SP z3BDotc0guOF31YX1sQ=R$Odr1HH7cyQ8^jFWQzYMIse1(8UGuXz_jk6_bTp&! z_<#8IAP%)DjAvDNep1fMkH`NTkN;QVB-8Quep%C3LNOMGV=OEwG{9wu99kq6 z?0EdY@%Vp9L|0h@{bFL2mF?`tmlYQ8F3g2s&@h$Zw`2P9r#%e_SyItR=J*Qoc z!}D%dJ{$Uds5fNbI~n`<<kIS7IDA824We=AROn6#@52QpAxGt9sY2zsEU77hRn zjjfHXu{(I|E*s%C#L6YFxsAmitw2>cqc{p?ogVgBO>CtjbPDBq9=Pc>cvZ-p>ienTZq#*Kg+Zzzfa>)`;QaG|g>RV%!n0u5cwm(rBK8(oA z2sttqF^N|udsEv}o!vN~D)oBC_IkH%agI~`9!Bb0H$qOWk5t;33W}%l@60F`g_Z`0;vfa{)iv5l!D+ zK{0Lqt=K6Zh4~~{Y+i8WWKpLu&|4`>%apHM6sMZsAUw7>ZK<_SJL2d>AxYR333>X8nCqFY#2o0rgmA(`Ds?@8lpP>HGqG(2X z>53)A=$^N*Y#<}<#D4`R^5s%G#3qFP!=hMBLvb>aZt7e>y;PkS&G_~527i)2r@3$r ze_G|gWpARWQR1Tcgic@Ks|3!7Vy_cj=?;~)@8gLHd`IXeic!_vFkmQ_hJ|++`YO$u zE^SoqkP!OH=$r=}Nt`T5>W<3_xkLl~XPY2>2=pxagHiIVJ#y*fJY73TdCXjDmBC4Rg@cd3lkuU%e?mjE8?!r_NU2 zrKoqa%PG8HNxS*#kq?Up z7lhVXq4U|b6nIQ*orRXsbDpCbo+$fQfc=2{o_V517xURw6u?ZZt3#U```grBy?gq* zn!n?S+@;Gm=pU02{_KpIXy}wv`p5H94HZ{5o~hv18lR!qX~xl7w6uSJ)+1|dVm64v zFps()Vf6@tPDZ!RkABvoaBWKwHY+<-B@*UL95_`Cua@2%nXN|7WLHx}w}QE9)pYod zyt%4dH?hQ|v_!G>he~@t!p$N?+-sV`txoMp9_$!=^8K=9^={R)9BE{VZv99}TV82B zP+=ip-KbKwy#BJOpe%1P=+2**o$zH-{W8snV={;cdBdAMm6AiT+1q7_9DYwS3k&dT z_h|a^3JS{i`p_4hZ5^EgrCYi*SPF6}T~g&s>9*2VrToRBIDvYpDy8QRWs|{v9(uQO z#P~&|N_^F#*o39=k7UHpOoBvOT5?XHyhMbDV7M6&>tqB~<2Jjd+?`W#sztFBZRw}X zVe8<2*bnv7wD*U?e2KC?^j@}3bMR}L8|2HBzak2trEk?9kbbI7QA5hn&?})X@gjaP z@&!4;-{md*-LM{FeU7r~)Fy8jYdVzd>Pa`PPPZKFOm$^?o3`|%+i(DEXM0y$)4F6w z^6-%j?R!#9>ozoOTC=?=>muQ4clIQ^yHh<)>r!2*9;_}~^Q-s!bllF+|3Nd+mR{+} zTTf3PetDUT2bL)%^} zLq&ABuqdC+OC+nu2F9JEh;co2{)!gti}!9%?@x8X><+c#WpK9JE`I!{uI0co%uz&I z)Kq;pKw)c|=u+G&F7By!5$%-qsmF($A-%@M4G*~C(D86%zHGd>kWEFRL-uzT2&&gW z(3-K9j=x+WhdL-oVv(W}J*nQ|&Qn3_#(xQ|MH%o5OVb+e%B$%BiNb>!{6 zmss!#?PE=qH%iRwNVn{7*w>rx^87A22ZS?bedS|~J%7nJ^iY1}=rOlKfTq_xfE7An zU@S7X7(i2grbJKe=sYZ=r&`8ZR{g8btXnv;18-ZDGu>^YI64*zDHy333q6C;ViZvo z75=M@7UrGoZLrm`CL_;2oATfS4cO<6+oMR$5aTvu;sUpQ6mb>pfIrYC~%kIwF&4Jd8~D3 zD8BnQ62sLXWz1g)`lM{jq>`OY-nF13e1blHzZMXw0{t zbAH)>N8D8GRdK)VG*sZEZ-w=_;mOBCTKNWkPB(l{@$NhF%sbAG!I)n29&qWGn9glX z#{@%L}lCMWLMzT7-mte?z&O*VnxP4`u;z6zQUYWoUibQ{C{Fk zv44yk?mDIkiT?2AeOZ!1lB7tIDoGl?%TIA45xLX(y0qf*%dxL=8d|Op3ow&%Hz8;# z#qb5d5r4qB(v8pzkw;zp@Swjnw4C3dE=h(YnG!-8NVX(}B?(oT>|;TMNwl*Rhy-&j zv~{Xj(9+TFB33x!sCQ)mP;lu~7XTb|*wLN>KtyDy4k8j~+FJprLZ?4OM0m-ilMum# z+kx;1Sq5K~q&#|hKJA5D1U-AvP>Wd5+MRZL5g8Qpv;t5OI2j3%1^Rjsl~l$HS^%K0 ztF;>dLR5MMATQlccM#BWKRpA&yVLCe3=p2)4}gPk6_jiE2kK99DXatI5qCd=NDPnq zJks6GpA2Y!<1{q$0D7&v-R&XTNvJ(UYpRO?3Mr2S(R>l<8vrP4Z|ML4QbBtUMb}MJ zia?x)lSnCuHH6=TsH$>T`(Xfx>6u9*jetw<5yV67>O}zpgmzQoQEHxN)Y-Ho&iK|Yh=7cGV2TnhG)a~Lx|2jY{hZaZl9!ee*12Oum8y4upx zhtQ$2w6{;8SiAe(V?j*M)+DM^R8oqU+(%Ws58_+9dng|03Y=5mP#fkj`Mm6CjDJ-HWSAkxbFH4g8=;N4$H~MsUEHBR>&y@IU!bWsuwA0?@gi&#J!Fn zpf+?E)lmq&JQffE4QZob;rLVviZ%^=_{L`N@$})C7cf_rx*P(lAtGKsSAY(NRPr{qhHJl1h@6XLs4hZ z2c7|X`gW8sqM=l>*X=@RXRj6o)b&3I#3D-vL5Uwtx|!4fD&3L>m(&&l3cH8AD8KaN zB^)AaO#%57#4@HHZS$hwB6e;C*?Go2%5?;8L9p&5XeE6L#0V9eh8XKAM?mHM?P$Qq z*OhcTIHW%bod&eB)bB95xP@@tDqh&vFDv2&d7o}0v>;L`!J$WzC z?IBT2N2GhwmOVVA@iL1?$ZijK4!5e=mRFImcF9N7mkhkg0 zK!vN&6TMIsG8swkOm^T|aN3n@1{r9$7Ysw3lf5wR%_-0XQ%ZO-q5a{NsvP5$a8qD` z##gX#7^-6<_BjQ9#}lf?V~Fn#E`p&d-2*K6>!psMz~r6*v{3~67D#HMAWbI+NaKgZ zrwJZMa3{_TVee~H)7jE={r#gf`)YW zbGyPDXK5%ToCy1#LaA0kBJRcz-^Q!Zp%7dz9zyJF8eR=g{XOT~LqhULYckVI1HGYI zkOw-`o4!DJ9VW@WaQEHZ)I1Rz9*02Q z0>@AK3eAvs4Bn~_an+$XeJaTgU3Sdl#~Tta^=gtt;X6S&eB}Ys{uU7E&Hs*4l18q& ziXiea;RW7i1j(bQh|VNm4I)@!O?lAb{@EtOUl> z3qe8uA-_(N3%Sc0gn$o3=&NNb>X0JGsm6ZP@QbN#)){qhSk7LuV_y~83Ey-T*%Ar<&$Y-z}(I6UexNQHhrtaP;@w` znu6GUfnc`SXlJMAq~ND)a#bA}v`8F6@oCV2 zo668|O%x)Ue5w_K(<`X=4=0H%%)wh|&LkrkyhW13Jnqs!`AFg_HF|_v@^pqCMErPU zJ+B0g5j`G{gTkp2p962;0WcjP?xyJ%Tr!5U-u-CRcVriP7KJyirluNZ*j6J(STi)W zy23QVmKxSf-O#kKY9`FsWX&=W(+fp0TnyEW7-pGSrrK(~R;H<8Lyc&r7LHklp&4P- zL5q&9qBX;`Of`YHVkkyynm)rYOa~al30p;zXi>KbEpVd+qrxx@-PER|#kh)SWTt7w zH7%x@YE)O_b_DICUU`{{TN-{Bj_TS3OI6XnX&WHS#AQ120K$f;mjQ#NBZQkX!8F4! zvhDuLZ8BCHE5(A;;qE?fe$d{N0stXmu8b=@PkRpl2)QTK3IL;0Z_2Yg^jCK~N)TQT zOCVapN%PO})$L!&L|Bml&;mk;6n582kCc#m8H3lLzdSlFydt|$T#Z`W zhz@UM0y+jxy@9^hn}qpTLs_gL!rI&KW72)0`G^3}N+@NcPiMNnIxo6-MIBHhz#5D9 zMeaC{*8dWl%IM=f?XROATmbkav7jN@A+h)F%#!=y2`FCg7t?gA8}s5?9@lt0!sD*R z<0jW35YC&E4Kz};C1GQ=T!%l6a2*wJt0T3HZXN7(&%}5l?@qS3JK^h4*G*EIPP!M6 z!|ZlLwA*n$U_0Hz7VGOG!)^@lLjZx>((|hrhK9l_7{#D$Z=($RTo9+b9Iu zNzS5w-G^1pY%bz7-U=*va3#l%#T@(w_5MHrT!1sPmPQIQf@UplR?;Ih%b6Vb3YzG+ ztz_zX3&>sEsU#LUyu}hdf>q2^&fSF^BlCb&<>@>`>gHYDDjpNTBC|8)aKw!yR64mB zALry9G#C=B2syZojK*utY$cs1OrFq4DDCb#uW9nY%d5-+c%(TX|=aD>&V=?xF_lG8k0{+ z@R}V2Ofva&WKBL9AB;Gdx;kE`z%*r!C@^`MNi^!U&gMp(_{3zB1}vb#0=C+h2bXKS zWe>^5o9v|Oxg4TF3K~EXbGPI#$_-B*`PaBtg6=_Qz~2mUr3LlCI{EDs!sULfhFh8%QDX|^l zHgw2_CHkx8$zHdi=LYSd)Z;d7YS169&=Y?{rIn@yrT0|GiOuF(oHlf{P=LNCH96~r zKxRA4-P`lQJd9?@Fe{k=T1=905I~bng~trqNrPSCldFk2zb{Tq%)Bgk=Ff3SD!Jd+QimL7&iME+9iDAfLS8LD_4;Zv-%A##sGR zvobc8;DxoBWMs5{ra3?6Rw?*tbcZ(2pRIY@UYhWvG?i=1yoW)M&ckrwSS-);G@vV6 z4g|qYN^V06XpEUuttXas)Gz>aap1m@$=k0&wF|P`!jrex`7U;T&~$fzzd`$7wE4k2^#YA+NYk)e zvy(;!to&1C_oR9V*E^i8F%tAHGKc{?WGNmN-XJJ6WFzT56PNs>t z!Yi@$1Le;OBfoMDHYUqM_)n?VRD}|>=>vh9cw=0(LgIvLo~qClCNV|fQ#@@V?aou% zd=#_}QLsXw1xY{;9OXbd1I3r~bRRGb3mdR#7MpC|2m6A%xE3wBHQ19{PCIO*{=2dk zDwEtX_2}O-Y)ArkEstRd7~wH!7S@ePj5>1M8%HqMU>u?4^zy7P!W6>)VCNZf$Jp#- zha(w7j+K|0M30W*reuoSqJLj<7gxhx_rBWJWGl^6uy~$UWOuT&yPm5dns(3(%e!_Z zvHO6b)*Iai02h+uz`$Rvl4kX9Xp%GVCU3!uko1 zWb@@QIiF6CNFpzLUqk&OtWoC$RR9PTwena4kKnGT0P@-f5<$%u6v3-&Ua3Fxf=T$h z&CRp968EN+*b^afOR4#!YJ~Z;tncv$VcLqN4i7e{+Z@jcV1*&mI-{!G%SL#mMxThr zCun?{#uEnJg>{n0fce7@pt8)XvJXO7WV^W1BStCv;9nuTp2qe3;KH8Uf| zwCdGHWR6{L7*nQ2CswMiT^qCAS!&FgXhvpQ6=j-qo4buijcte*zfJqJHc5S2ZC3tUIXm?I(Ana1A|XF3r}!`V6|jmc z*e~#S@aI;YmpgES<}PmC}GxNt&(Sc961|Y=3#NwS4AWLCL-Qt$uF?a z7or)-(HeTzOTXHmXI*A!UvG0iB4MW@EZqPOJm`xae*U%OY+Pp{Cf8xxB@ zvKdMj90^7EJ4-2i3C&jaRw{qBlw{u7K7+nUS<=ki@TNgpQ9eTCqO4LpVhJPfV4uOr zM`ZjP2N{37|J(b+GX9a(9%TF*1{r^RgvP%<0Y)TMDZ9J|Cu?`eB&P}X=7&m zjXC4TjsJ`se&6^D@Q1E8LTi@!3IV-fuNUn(-Jt_BLoe{q%j}BK9qjuey@F6w_aAck zdQtQb)BS*0JWo8Ni|?@;L>K$BNS{8s2y?dAekj?|yEEOz|2|KCvo7DtZjes`!pw3) z7+RhcqW1cPSkfw_m)rRltNBa%GTy8|df_s-wzJOiRw`uC!$JD$<}N)lP5PCwPWqy8 z(CAtU4CkMpbr)LkBl3$a5^`&YT*$g&^S|x z{!e?6b&L5=^GoJZ;~M?fdZ+elZL9hz^|10Y<&@B!p=shyp~@ZdJbpVr2mAilNj2=Y z?D~In)5|VK9|vb-`U6?j;DOYSs0Cjv1KaS+DgftWH`VXR+OX&M>!OB@1_y`@1 zGH|%V{bE}G8XqfLkG1rJi(~VxvS+08mS#Xr{#sfaG@ZU$dS~QnHF6(&SEOF5Dm*E- z7ri^+q+G4UytzcNy`<9q4@7mCI{Itro*ZfZbb5rOSyxtCf2*+ekN#TvK+X%09=P*K z2L|qrJ**k$Vl92&n5?C{bNGEPRDfUmjiz5&p*=PxUdWB7p>-QK_Pe2D!?A%u#yZeO zl=mgn(=FxQ>=Sgd?~qkXyQ=yw$R&>~x9)Y*CFUo@%a)kMe(>sajl`X~kxq#47=C$> zbtCFPzKc0&)OdAAGJ*%oI^jy5JtelyigM}vr5%G@i8{!Yyia;}!E#Wgt6x(N2+Fyk$Sv>l#WM7Un-<6DzH0#z%J6d76qwh-EbEfRO64HZ# zuH*^L=!Pr#(wMlCy*d28D=EZ}SK7B$XulX6S2D2;1O)R}j{tdihLGnXifO#^@oDPW zmU2J))F8VpR=KoCnZIWcb#q3AI&sRhkYtGy*pG%o-H7}OOTmiM>6~Agl)vs9=yXf? zlMz2q7KI<7D`etH#8S zT$sb}`;h|t+SfEaS)qM&Z2Sn{4XsOgqOqhe7?#V3>}A)KJy{n$ z&5Hb8T7Ozo&I6D#%$YpU1K59(E_NPLou3?ajErM26fO(8hiI?~O_j#E!9u?^#$$KVBd_AUeEU!({< zch2niB zV(T`#;FpBsmH1X~%zON&!@9DQMlQX5r1W+{`g zVP1H%q)R&H#vr&nWUe_ZZ1VF_@lH$rF?P0#U>k|+>2jlBH-G=o%=wz3_XUSrFV@Sh ziN7$b{CfN%OuBKUTLy&rF+GbS9Aq&~-KFOm$wxjnVsHf|o zk^HEh!=a=Y*Mo>Hdu4ibBcghy5!KTT14n*XPjjHNbxi3{=Z_^*RSxcjxPne&idKQ1R_8@Q6})Qt6T_uHhWN6|&T4!Vo_`n9f+ zD?mLOV%{{ChA`)X}%OI!rS!tY)&P`41f6l?i3a9hMSfw-9Fo@0IlO zM_mmf%fsaA!$2iJTPCix|A1NMgR1l6qt21SS*Ba%hH_4UD0k~ZB|Kb-V(WvIb`92< z*N*-=(-k?|$OPQ_5z=PS3SGp5{cDO2zj(IR(C8n??`29EO( zy7n+J$}h&mjh6fzzAah|<49~ga|}%9$AT;R7O;ek7u$3zQ8jig-UYKc<*inHs&5`C? z_((~cUg_LY;pn4p;g{s>%Qx_XcidL9X8nmhZ=Ep~22Sh$8g`gD)!`??nec4;8N1W^ zp|#6AV7x_tlXj)HMtw{@rp{45q)ZQeOgtqFc@keB{a$*Lw1oYZ9j?tD08o7WkDpt4 zKl#T`_*>|=_;hTR_fz|fd*UD!uPAmfWeL3+}SQ2Et{s6t-LJq1csI1X5cXE-FCMjXG^59 zeT@|*?72j-{mIJkC0N4TB7JP^=J&o_8j6XhXdx7Bkj!W;)9%j8F-wl4Z~X|FwLV;F zAFQz6!T$8`%_|l)o87qseNo?86%fn7Ma`|6(Fd(?r58qVEif9LRdjW;*`1SP$?Lyu z1uSV9O>e5uc1hL$W*ik==5)Ih#5?aBLTyDISTVg<7RQyZSjqx+r(W!K=_ygjt%nrz zaJtU0k;=b|i}zddFW6U#BOS@C=%`EK!1Lo|M@t>gUt-)CVfFZ@*fkY%=2!gLD&HV| z<}9}k=+o7?v12IogS<%t?bbH7`q%hXO8l*Me9M{QESG|ak4l?yB|g!PJ+)q>T?!|j zOyG zVgf`(m3Yh&4qgqHBw!>1Shq_t-gnc{X2I84i@Y8xF?1Ea7%EXQ_8u&F%IeF%XvI&E zZeHis5X!s-PjQrkoO^D$(x^L`UGD)S#d+H)ZMF$@L`~PX?TpQ1PUE-6Jw{UhmA*&& zqc&4LTj>b(g;t3liL1pa^22f`&Yt@aUoZVmdb3o|zQNKs0C0Hg|8w1~=#(RszW&1u z*n}Zp%zN*+2YQ7DFV2T|F+{y_X~?*iU12O{kBf8NvqqtD#O$CQv|jBu^?F-KKg6!k zr=syDcMBT7r22JH?uC8uC*SIKW^0=i?E-d{rm&|)%H0fYbLFY8r~RCh%0bGt4eBIA zUC7?0JS+)uj=KqLTvYyg(2&Z}|IpD{p_hchSYPNP?7N6kOTTozbmHr28alcqnb{j8 zV&5F`tSVk&my7qZ$I!p@bJo|VJl@W%cagW(%ij#iPqHiIH=%!%?s_!dd197&ZRDC+ zL|OUSE%L;e+=%mr9<;98?*4!6eF=PAS9SNi``*l3W?!_+vTRwF-+k}h<=k`6z4zR6&;KUmao~U}_@09MTlEYv z)+=s<2c02!3MtwLk!&_w9ag%0uyC3T7b|}={d*W#uH8%rhbEQBZ?$hkrn5cO)lid6 z>m;=7z6Yl{--FZX$Mp2uqUq^dv|DXDH~P#I9MaRBObSFTnDFi>ztntsT+X_Q=Zv|MFv8 zQ7mR|vFVVf$3%4b<}T2rR+si#!+HRVnRCjMmvENN$-I3Hx~ylDFXty3d;~#gEFJodNN985ZKluD=Bp85(|J`-hIVv? zInu7;n`u|^Grl=q%<`jX)A3dBIMKl~orbRKMATRgto+UN`!G%nY;OBfBy+v;`1LlQ zXiZkfi6)uW30P?&wk*;wiKcJAPP^W|0%gDVX(j^)%01E4-|WYjun)<2$Ap!Y#=rJ; zMNW+krd|OEWf&7wJvs1D;#Ymggv+Xuk{2KQJDLdpCehKy zJ7V`?Ojv$)#{^82F(x$P-1)>c8xx*attqSM4_stTBX8)4-rF8|;j=p?Jj06en6S4h zL%B_F?r0bjUSU}C7!wMYcuaVPrEfAO?5Wm=TkcRpeTE~=V_}kVHfD<$;k6hyL3Urvu|2WImw*ex&${K?04;I@&i6vBabw^#UA{aZ zUBAOSt{Ve4%1!fclP?8Dj~j443yO9(1_&mX4mWEA9y1!d=Q}^hrPLkMW~xpPQ}80q4ltDR>tiB zFc>_F4hjnxa|vOA5LO2{8pooZaB)aT;f4T(Y5>FV1{hjC^($r3vrU)3pR=4oE>U|mA%qP_izOn0NY;6K{1%>}$pY(j{NZxj9Q|eX) ze%``0(gD7S@$;&jO$Pne8Dfhec7g*fdIZnu zc&Ek>FCbX5bKpPtfrbnCfr|iiJ6Q&%2s~F8a_F&xgo>diAY$NyJM4-i2qr{RXcz?i^BNyWxsxmo3*SV|cx&(|AI59`9a|9PapmRV_VnjC}8<1F9M{GOgfuRHZ z1Ns5HV-o@Zph+0xx8? zH=J|>V13E`GVl;VUlbN1OkzgyAX*2-W=V7*MpEvhCrBQj>d7R9+rVk~ej*Vkk|xWo7U`q!XMm6Q?q~!cn1bB36h3 zamo){v3wGf2Z#v#+Ju^B!2#J(`N7$<49j;aS0T=1uklD0K7;eOP1t!2C zL3W1{f&qiDu8_+QToHwVZV~d9gcf)d{}ziFM$o14E9P!+r%?n~2=OLiX8`%>pu^?} z^g#l|<^W6#UI20lu5MssvL_bpv-eB9#tc9dFHhP^V#v^!=Pyq&Y~z3)T@$<92!-@m zDx5Z~#P*Gs+quM|wa4C(NLt3_iEww+&`o2HWhJ8ngW-ssOY3?vt&a=>Paqlt#^W0O z!LGjUbkf}11Mq;&gzoB(f&zS?F%Cn1PMIF3?3QSD+r#`?*V8<%j5t>Z`8a?NzM5u2ooF3pkHpAjU@AM+*fd4BPIp`i<=$q#j z?FKzA+lbH7i2Q=V(FJM2oVrHWS3zv=h&w+5v;oQ!nlz2YlDzB>gUS zr42r>U${1|NNbm&e(Sutg&l_X|0fGKG+X_02_2zvJ>)Ee02St4U?%ZOAYETmFd6Fl%8hrHB)y&x2&61gZ1jC#w(fgqQ+QNSEr`bKRmO|@*H4AyWEK+ z3^D<^fUizM-y3%;1TtY+R=k>KkF*Lz1D}S9UE>?7Cl)Nuhe1^%WIG#9U;`}T-AopL9w7iF$u9IKdM5mp@6d(GD#a^&=x?OA-dZ5HbE+z z{F!T9?LXLt_y^ll80dgqSGi_5oZ_oas*u9`eyZhS0c(UV9;Kky?iE^8j#%Q{Vw}MD zdi$YP0VI4DTn#lC_yt*znolWiCA|fdS6F4xT0?52s3T#et?|n3`Fy2m!4~>r63wbP zE$bj!LO(7W&PBr|j)rO&It0N=2I#}^0|+K-(o;dMKt*jN1K`yZGdXtEIz>-HtmFAT zHGsvKdGea!Fg6_!ualp_Tf3l{4Syw?oJKrw@!sq+FCElhn${tJK7RI}wit0efaup#h@AVgL?9TbTW~K z0w8T!iS*rrox9SBL?#}+JDoP;>BMj}olK`UB;d0zlNjvM(~-fLsVAaly2}p6QfVLs zD!qw8y(^jtrPBIcsSSxu#!v`fx1|SnCI+pjrF<#yYGpR0-4wb>`&ei$bhq^?;|JEB z$m#g6$6pwqG}mdr6S)xC7P&9{_3$Uck6Xu#pEF)-*hWG9RV}RklX^n`5B+!bH|Y-n zBJQC1h^~Zhu-;-`Fbn1#sO06QrC(=0X?{NR5Aor6Z)`_wFuE<;AD#*yF+XI!)A$GD zE5?|yLC@>=gkBapAN;xCquS4FZ&069|5zP>+I?8`pjrP5{sz7#ek8svKCgZ@Sl0Wr ze-C{k^l0$kv?qgK48Av*F+LstVEE6}_s4IE?+L#&yr|x&j>X<@{k{14*lFv1V%GYa z^@R9Y@jCIh;w#oo>g%*gZENIq>wc@#{9)`DVsDE6QuOW0Ta?!;Usl8FJH%~bukvnX z)_9-xqToG|pNc;b35NCrZ`Tg1kBHAJU$UNW?a^PSp9y`{7&orcKS(-~fc5e~U)Acq z)}$`*rV;goAd~spcv%1Vnc4+@)CGL%bgT{)%p7?H7|Um=I+B4iv4m;{Qs)C`^k27dt+Gwukeq4 z`F1rce4N2lNl{~C8F-ntArLy6PpAXprczT~m#T-9kW9Pu1wEXIi=_~h~15l8T7PE_sNbQdz>Kesm+6TQi z=YzKgbd)Bpt`jE;*`@Ny8_VUzz+ZN&d&RYLbA<E4M<Qzx?vv$@+AuFJv7WahRR$-7@4P!G}<`{(kxh4TJlZW@2`z$5as z*57ogyFGNMCJ}hjTdAz~<~}&f3f;N5PCX!yXttb_y=pqU2#2zs6#jmTdd%mI8w$mS z5(U0721s6+8Zj0XbP6d?Q}2*(R}+@C`@13aj@Dnu_x{#f^kd$eJIzl8!VUmyN*xl{ z=Vr1?bLH`=!eXuz_(5aTza`Z{Axkr!n=0nYf$ulO{424EdEuow(B@$CMyT@Cy50mo4QcigTF6qQqXgq9`QL zZphBfO~R$ofwPMcccp_1s7_&Fx}*eJJq`R9bsGNW-1w>71A+gnyZ;f%-~$WU$vG)P zUB(Rj&|CI{-kTdS@rbx^S#2<$toBJsA4T(xRoAFjD@|dq4zzrFeLeBakeZCCYsJBm zB*?U)(<|KXr@1|pP|Fmr4yOX4+fNd)vpl$*V8Nk8Db)&*6>F<{FNuZ~NvSJQDCOYv z74px%A$8pM)4EB-<&k}XU5*654B_WBv9Et#kGfBBpHVaBBrBZAFDNl@1MTtN>~2%H zH2@GJLk5@I|FTeM+b{%+2Mq3z$P}s!4IETfMAF zIW|Tw51e(u=Wdx?QTq=P1)P@LfbW~NjrvaR|g7BQmA9+ZVwT<@L4k=bhaQu zhqvDC-kY}Ap9XgL6(mEGE58Tni|N5Bx57y`kXT_aj>q2^xZY{|7{bk}9c@wVh_|L; z?~Uc#UrpawgL1$CA{oAxarG9@aI8AeU1gylZo`tGSaw%>w%Q^EF`ynYn{?|+fh?qZ zK|LM_4rs5|&a2CcOOK-aa1_O;NrLVpyR3hj)&GxkXAOzZ~jPlLi@Y`R(#ZXhTO&In?cpDW|1$g=;kSoh7QR1x zC_HMs)X3|v(ocsz8hR}FWbiX;UVTD+t@>i4-^heF1}*KA+B?D>)(@?}u-;`oW?itR ztWj%&)oDenfcZW1@60F6FPNV;KWe_me6#r)^CiYT`gG`3!H=6SH0RA*&F#hyj3uEznCe8&(oDMc_HjiSjwz$LSGI(3A+xad?t+n4W}bI?J~Q7N!>q z`31~&N{dhfRJI%jq5(@k?t#%xdP#MTw zEyF)i5iyKo@_A#nbTaT=nh`s>aWZl_@a;bJ>Y8YGk}4m6i&hoRS8}4T-*?^gk5uOR zq6EI`8~X%Ji+#K+1isYl!55jl|?@P{&pBV&O-2&-K}3emt9sJ2ywUEuedCG~%4 znbt&%a+w0ZOIjYE;3jtReM{jhi~1Y-mN%FhElmThRMAd zbz8%`NBts?>{bhSvl;4C6K2lQLaO;!Ct5!~PKzP$*ZXN{dgtPGUPAqh_vTgJo0oc~ z@-Os+%bxI@Cp_&5-{T1%_JnWogfH`iH+aHbo^Wi3ny)NuRwe)@Xo~7iWa~b;t;Mrj zX>C~f?%JK|smk3-7l5r+VXc>FF?F3Mx1gzZC~~RWic{av>f!%x_3)=!J$z-Whc9XM z@Wn*lCd0zREuKBp;#sN1vto;9r&>I_zs0ku7SASIJiEKav%6Y68*lOK1udT4+~V0y zEuPirk?Mx-y)C|LskLbFUCV`ji|<;ll((x>%0=uSTwv`0Z?@EqBIlYtIBTh0P7Yf* zGxnrb`*9PQy=Jp|%vTlBI8=8x(^@oFXK=Z=FdB(QR}s6gqM{uldN=!|#j_hoG*-U5 zhE&eY#^u19TRwdg9RLvV9fA0xxUBwLrNAl$Rw=MbfmI5uQec$=s}xwJz$yh+DX>a` zA43Yf_^MC82>;-i?G-q`EjHo=v#PUy3?6a8DM} zM$4t*t@3;e&O+>`b2Lk(EjUM_0_Z$W4%fQ-$sbV(M?^H|l!!c0LWdu4K1bCI95RuI zLu6D~)#!W(9qs2c6gY$s#~~9sInT!e8a~I_3+d%co;YwniXjns{08~t=WxgXXB8Ft z(HQ{uR7Tas4j)P&mp>LeJHmM(@0;*7B98%Z3h9uO6wY!KvnldM1V3n-JHla$8~gubx;=z-^x$?x=b+O}g7dRSVXU`mL>znw>azOK*gC2l=x1 z_Tb(lLwm2iLd!45DTlUomn4TWSzz*}V>PtrN7i0r`<`zd)M)*$#)1F$x%gZ0XZ7DI z1y(7rN`X}htWsc=0;?2QrNAl$Rw=MbfmI5uQec$=myiORRIO|Gy76=KlZCm1cb<@e z6W14}mf#z>d~kZl-W~m8WBvGV6FgvC-BJJM#KP$%9DjCcyimk6mvErCo zv@kY)>Nom!ukU-k^6tJivBiAqw=0+q`{@+Z9L{FBCwPbLz4jcGHy8E_M);&!tX)wp zV2#pvfYCRy=Z!b_M%#KHQ;I$RDEbL&sqw=~32#_hn7ZO{wsh(W&tb=_uJQx)IBlPb z2b9tlN9!b%-777)_k1LZOCsn*8Wntm|vK!{ylhL0UfkRHu6`J2X^?2}Zh zZMkZ#N*7V9l^sWxbz9lHsndnDwl$Mc9!h;(yxXba%07J>&Fa@z?7Qq)DXmCQkuMm~ z=b6)lk5IIv1iuk~P2jzW>GjEoa&O`WG0>U-{6+KT^{w3@dxmO~(xo1J@ z&YCxg4(oyUg#WN3@&WND;g6|*U^aQJBFx<0=*Om&Ug%q)gLaN8lss6iP|u1g1fkVp zU}^o-xBy6?EBegeRxUFKlqX04wn%G}f319mn7BO+LH+RVN_U)CSyd{B+pDcpJ?&eK z3;pdm{Z$$L_X6+IXOyJr_ex!h3?H?pP@=pCy!IkXRLvy#qJ>be6&ebBB>26+H#NJ> zo~W9d2`ag;viBZ9 z$=-uB$16Nztf+13TUzN$D5HChD%PHdud?q(f@5P$L=qu>2|C}?v3b{x%|EC1zAW&K zJ#VrA2znQf7uQk}G-4?BmT2P_BhCEljL_`K-(gJiC+cP0>UST8t?+F;`SSl<4h_vQ z!+gQgPTR+5i!#2~sSeoxqH5!vB33;0_(qB!w5f4JJh4x+bM~D?!?r6qQyz1tE-Ke% z#BCO@ggce@DjO9|`GVQ(olQK$ZjjPj`+3q`&r>6Hvv5C|KYY?YO2joKyRmG!sA@KP zVQP#Cd?OWj{63(X9|2=efuaiWq%bb38Jp2$x-;-P^@*ce_Z9Yp({B`o`Q9)2#$Iqu zN-OQruC(j{`!Mf>@8n^dN|?KNym+63qdrm514=ITiFEw(NbG}w*O)$UR0h3+&I<8b z>9A+mex5zfj9D$F9euXS8SYlHkyoap+ar;e1U~Fr&gOl2Ykz&&Y5lLnpA5vG)IJKY zME}$O#XDdUqiBI&0f0fQppA}X7lEP$@IV-~%w`c};}-nwRMc#C3TO^6?3kjzaOgNk zFJRD|&)MCY3VaOm>Wv><+``eV44VW30vszi7tPzx7wjz+=nz+P2%skHoOLmegy0Sm zxO`(F0SE^C=JvrYs15I=u*`vHQ@D{_LvAEX=WGCn!GUWdgn*2J zx6&Daj#NK`vulErImD;|b_e_AWWSf>pff1o+)@SrnIr>4l>jVy>|LIu*uUo4b0|81 zeN?*p{hLKm|$&FkQYTNEw06k!lpoWfTQso>T!+|a+4*$#W?A{ILqecSD zmQgLD7o49;2gqb!#m-<6l~A<=>Od}9-KdBP55lhfm;BJN|B@zQo+!8}Hk`D9lLAyN z(AevR+8b6CsyI+%s>q^5`a{(9PTTN?vQ>8V_uK;Ko7ZTg+3d8P=Yk0_IcJ|18k!QF z`xKyAq#NbwEMA~CqOQJ7K7aWKAL8~5bds1ZXg z%;I%`#-!lkn(#&JBAOUf%X8--J29jUFSG>mga_yFHo6|LfQB{VQv_g@27k-toIR@r zV+#Gxou0kTF3s6z9kEijXB{3mdk#sGT%aG|Jf=`5={L882k=yzJBeKIcO7ssgt$Lv zKS*_-%b^HClfHp3IHX1`iC&n+%ix3rz;}c=Mc6fx8|U(Pr%Rztd)@Sn~h=e2NsObs^6(goIs?F5okMqbEsCW}%MuQ-$g`>cm# z0csqGm&ezVyB4zc91(a88U%R)LZfnUz&&`yS;!cz;_5B(ChnP3|f$p^L% zh-zpB9zm3|NK}>~UqE%JzY=Q0S(MHhxI`6X57lZwn46)VKPchlAb48B#vxJ8fcoHh z6qx2llPCb?L@alziUfD63IjJU;O)Hz^o^0-JV<9HR22rm6>KuVnF%3*$yNe0Hk$)S z0XZ=Z2l6lnJ`0k9r3(%=moEla-T~ku!A6o_5$l01DqW>hO-_n6aOh8*bH)*<=g=;A zEv~2qG)<9Y3IxCmHb^^#iS7q-u)rH7ir!=>@R)gBj+h3K|Bg>z?2Y@2s{gM zf%dt;wcsXtm|tPaou(2@p+qc^AEG}6++n;Yp%H5*;arBKma=?l5?p|P=Scj*aXio^ zHnZh90+@n=Im%gT4W8gAlNe)e}|>=y-Zpd)SIa^q3Kj#KQgIbe|CkTVcyE%(P{M zEj^sj!^v<`kLtrl($Hg8!U!9&M8pEJUQCZ0x)qP=VZ#bX!g_x!tRqAp_gNOu`0#!| zo?2leY?@KZ51Hb7tKG6JGinKqqV;D$UPnmkgN+5N-*OtT+LkCu%WpqdI z7l}tLlqrnM8r&lgv%+Q)=|{|1G8XR+huc2O2SwDtC~*FgHt;mH(Q}JgJ1)8z0B~L4 zP$0f9_Gl~`eS35?@+*-SgufD=x4vaPV1Cz}H@;&O^#9bCL*EM>3jTTUg!VVuF)gIN zPrXw7ftXT$pgf{%3w#Vo1OoZx7^`b8&B2ALL)B_%&%3QXAKJd>%?Gs8%Tda!3qu;F z4EWDiC%e*P7+$Bd-tcZa@QFPWkv)?;_uO!sc49d~d0wKUAME{&FS{p$yH7@UkFVEe zm&24pdTmv&x}t3b|HCC5OCI7Xf!#aI-B(0+4{StE)+NlT;-a?_*e%T6k?5}Puh&j3 zo0L-rZ=&s+|gu^oiRE`&&h#4bxxU;s7>U5eta>zFnoA9gdF9r z6G*wz+Ie#H1b2QTyeqo2^NWG^-M$>GBukvPLZW#Zz!ThA3hz8VZyU=RHT(1BF3ie1 zXuZnZ*>D@FZV_^yDK$jYzp!(2V&^SlXZLRHfn}A7GWcv2#V_Z5G0GY1cFK8Z`$hKW zrzXO6(m{DOYbRpIcal3rY{!#ZwZgJOd9N9~M0tC+XT0GZpN#DITx`dCw`%sla)7d& zy;6$g6$|BN)otcxeWclgX7M}PuG=x!x#RWfj_hTcZP^#7n7g0tVm?J_UJ|3yoU>m@ zh1tID648t$FuRu@sRpZ|vAJ8vzGRJkr*rJn2ebwIVamJf(&ycf;a6gm;S24DD8u2g zOH^5BC&uFpwJ~P&>(`83of>;VY;1H?J8wTo1sL3Ri3(8fb+!I}bn=?fPb5Y^7aM)g zh-L@u^OXCRotG$gAE*GIsO_IQI=U-8dSh&K6Urd$b5w?XLzk!wHJ}e8HFq^P+jkt= z{xi|-9~IkQu|vbUfC{npSt*2Hw!aXgY#*{8pltVEDv>D7c_fs@i1)@D-X4r>9}pwo z->wzxGnD-$lgQp&ykW{Q6{8#%?Ip@_h|NE!!B;p-ZYGdrE(fQb${w7qM0~**`Fk<) zsV&;9U8XGCE_IgPoW2~RoKD*%%4zM;B^uyrrh7FvBX5k3yfZfPs!hnVNO`LJxc97l ze%XYeO`^B`=+MYa$H-4;UmSTsP@Az&V|FHuZjhr;##S`Vth#cphPGZ|ZM{o*Z0knl z_swdov$H*HtM(#ta!i0Jr=u&%sSc5)?soG}$2b3`a`)y3mA9F7k9=+3hOzBm0FfV% zlO`&L9bHj59NEuJ$7YWW5rg66;K^Wk!#9I3ckR5ZZ*TJ1ICqSEeT@pQwHIjHU%#69 zkIOl9(dBe)9vjMA^PvA^*SgK>$NF#79;+#L%}W&n1=mip_OGuY5AXj6)&=P2`|r(1 zUrgEqRSSG_M<5u#+ju}2+9=S4>>Mdp8kMSb;Isw%E|H8mYSyA1VEqtnlq;ocUD(=? zFzj`#)ghgEMgQ6WWlI|l$63*|08MlS(bkSIL?rgn5sNE>+b=OklsO*$^*Lg#n8SwI3S@K(B{@ z9^^N@n8Q$Zt#kC~$AkrpP*;_Hgp{9J($TIiEr2s=j}JTk2k8AXd2EIg&M7O~kBMN) z)wg>vizjIFyf-Y?GcjS_L4dx{-ft5@m^DEE>DA2_VF^Ouu|(4bEj>dX_qZh>tvwd^ zP;EgW3W9^diElt(#Nvu5aM=j-uo4a#&#REg_I5_3O*AU|vF$-yN)sXsbXVE~uR~6r zbJIutvDZO+1HM4Y=)GWMa0Rrg6Cx3!@)UDN+|m;t9U(TruVz=_UeeJ5##QbuJm*Nv z0`>u9qQSa%*~_#L?s*f$xhGo(+FMbb`%c{RW{z{;4yzc_&%4hFFPfCw?mgLiNG7FN zpzb<2)3kNrzGEPc9O$6`S8=8hN6v3*(suBuYtly?<X*%IUaHULz^MGlaBAw~?b+Ymb~k}4b7fCrLf3tMa8cB5Dkjx`vU z_PnLt6nYG8qIfr$YEiCzcbjq|qVa}PH|?y0z8%lmHoqz@{hJMk7SFlEiZu(098t9QZ4P#frhVybXSY zSS!4Z#y>`E-^YR)gOADMp{&wwPu)Od*cPbDBnHf91K1r|OTil=@r!OFJ&KVrNr>%9 zU{VqyKBhS`e3fCl9lsD=NvuoMc%B8)c+A#xH2!!wir)re?abf%d_3u!3|r0z{NQ*t%?{XZZ+cDYxC_wGOBr zr2$;M@6~LG_omYrmJeN0XnG!CHt5Nr<(52pUL7mgwX?qYnXo|7tzkW#jNAK zW;iCrS7`#$>}oc=<4vbA+(rhHo#>Rnm~Un+aD*m=!6eH_Fr~B^nA$I_o(el)^phq8 z@Rx@H+k4G$Op31HXGa=>c7jW)jN_ zR@9gX$MsS=pPq8 zAOM5;X8+=UDJ^Y3IT{GWgI=S0NWMn9dK@;vBoqH&aG#~Wg)CO>sO_SCf^K0^av$VO z)&3q5-8I2Shd+s@STUYP8W=UCO@0TloE(H^>}gs<<&*y{?YpP(G1A7{YTI>{|B?cqUk=lGOaxb0Mp}pcyPq>864B>SO8nX z9;I5q%rXaA3VY%*DvhNkto3q`JFsiI6sHDY=M6*TV^on#bbtVc#yM#gevH<^Fv6ZD zrh?h@gM=(i`p|*OIFTXee>8(2<5l{3V=(OE=Z$GsQMH;Fn6KjJeTQO@9A;_Y zQ!+S5HE`LjV`d+%wQ$Db@?tU&jGN%u`c4f7mC&P1q=chOKxGeR&vy5+EN zRt;DSLzdE~=&wk>i%;s{u#Wt}2z+D->7i3+=g@$V7SPPyI8uO{j>1^1;A94FAsS}Ts5D`bR>F-}?)@EtvrsbQI>Dp}BvLa=GiqFo?~ z?=O-57y~=mv>&0GV-f}l2Y<|9b(kl^a{UM~0A7L19H2FJ)KIfr6P$I&3c3^Gh~ z5IsmQf<_~W4}ugPz+Z4IjIVQ;e5$|#M@!HO&uVf7kI=Y72lgm!lxEftCwO5phn|lDf zL2Q`^7uIA;^MMX(hqyEbZ@i*lM0E0UEd>W}Eff~fj%bC&BH9Zy#IHcB!iTiK66Dq5I#U(j@{#DKLvgbVs^;}(gGX|fUGZf#KWtZA}C;qFQht>uI0&Z<=5umPFR2!|2AGQT3~=M%&dXgkjk|%)=ecXGD-UNMHdD1uo6@J6M*JWO}xAm()DaQes^~ za%II@#)?`IMI_PFr~{NSM43i4U{&E)uhc^sYBYH`>45VT!=A=xEWj_V}{=4NfrwwRhdNg&s67xCa&ZECaNSNO$RH38kIgWhD6E{)@VWX z<0yU5?HuI}j$yzFKWf>id66+y{RFIFNyxzpBI}yw1^x{DyX?CaadQ4Bl z)_*p<-ddXu&urAwx}F|`ZND*=I+-zz3=%W&7iR$yv1I1@fqfQ0?qil=c81#$*BeGO zffE25!s+g0Pt-6n>oa&&*Uij8hmqEC1i%(e@||1Gg45M0(isokk*>ig9fL(%ggaTJlxzt#2s>iQq+ z&B1q)A&8;|ZUQm1zEXOba zs=3k$1TZR|UBq8ZH1owA0(4F;Uqk@e6>}v7kX`8n&Z|)BXBR1eja1X1`_o& z>njU0Jom%W!m}SmVJw;Bv;f)A#zQL>WY`y)pqTaE)#?DxlW8#ILxeizJ=82_vB=&gG|WD+)~=pjJ-rksjaz5G zXq%t_R>_#1Vp9$ZI4FLKIqK`QLZ?mxS^BiVviMU%&EfzY?8rc$8$bifm<@7k5#9^% zCVoz~ytZjt3}|ua-Js}o0}hH8>;v5xRK@3H_nwTtm}fZ_ z$|Px6!xGqua$NtAF2?za^!IUm=t&qku=S89ZDgWR@(oewwbJ_vRGkpj_+k11sXF&8 zVWfc-Sf3~D7aVmQTshzuqAPZ0X@8cLbz~8UisFY^Bf30(E>xR$`<0BIu(zv1!{!Ql z{@nRcQp7SIJ=k-&e4z~UO-I-rAjM4spqn9vdCL~o5W5Vq!y>FV z=qI48g#vmrE9-DOh#kc`+&5UDcz>Al$Xm>?yuT|+Vao_{=UF-q5J!=4#uX)I7eG{7 znwarw9bNJyhR~2k4tjXtR?lSTu5slxRA?~N!4wvX%Of=CwBfvbwumN{CRnIHRDv`a zWmOU8E~MZLrT92KzAEEWOjz*4x9GwsiT4K~EpO#Jl`Cl$t`Pqw7k9xaK+IZe-yF6&^+Yt<8#dQ2V^0*$ z3NF8*t1a0UUK6`K5ssu|u|ztuama>^K-gsa|Hx1vG87480=@cgl>)02Sf#)!1y(7r zN`X}htWw~AJ_W=LP?4^}gx9Pwowet)2oqknm}|az^I5FbufniJF*562aKR>k7F1Bk z)GU-5mP9LE{2)D`Sp)*TU=&|BVK2Mm*GbO~E_!5RAgI1IW{)~H-rm)HHC!>G2D&^< ztzbn>DyKER#?e^TWN`$+F$R)0(YRudfR_5*wYqAy=xJ0>*D0l8$K+_GrN$XFW_2@Z z6+2iV(Wvs3F;vVBNB4ShN?6jW;!|3~HmX2njK3n3Y6;~gwE@gWpuB)7XLqCe5@}22 z;7YZGMeJ=?)%aCS;35?G*dJM9i=}#P9dcnM88#32U?FQ zLGyEqRQQ0q>Qy;lgBm3bX=q?hK~3b<&v;ZZ3MpaG8g+^nsa&C+iXaDO?sMl3^bqp2l0&`1ut@c1s&r3zYHZ!evW8+^>8|yD0 zXxEL*j-+n1&0LRAx+83c%}h7~y+CSf=A!NYu^*b9I(3}&mVAsjkL@Q%r$t&B*OCkY zHpq|D;Y{k=R6F>nh8B^JK-C18igD6^EKbmyrE_;O>q0RE&8GKC8-=woXubS6b)PNL zvpxKHy8&225`PJ?#|`Y#ofyX-J`Os|M?up4m0>?B^j2L38MOXwl#gBvMOHhG23N&_}KSBB@N0%z~+c=EI z8mV<5(o4Y)`PvZt?Yo-(ik(ZXHkK6Sw3&+CBoYjKFrp?v@@gEc&Q9Q|aj+)^BI2kZ zG{#bV$a~UuOSQVZ@4!6~&walQYIdnJm(S~bF}U80D@1@3(+ zt!VKm{qMwt;&g&so)9OF5E`8jhq9X3+x@D}J3j09WkvZDSJX?}Q6Be=RdK^{--y*++&NHyaE6#6% z<-GA|&cg9(mz&L@bucbsgN7I!JrO_bBi7zx2SPseyraRk+%I;$jIB+e-j3b(%d`qV zz+_`SAvR$%-4I)F2p;vd=p-1%pY^b1Un(Bv)4MP`kUyAC$N;PlW|t=D$UM3&&e88M z#Hb}U;8Yn~3C~SWka%*YQL?uH_M*~PD>4QgjBd$i=A12Z2oNblR0>eHBk8-~zQ;zq z3p3*)#(qY8u8=)Q!21-UXhP^o9*?A}4fM21fP~RF*~?>xnzn<4z}}|}jJkp6xq&^p z^T;tt7qpp9F9*rdMET@lK4c8j3i*Q>i44FRt(pzrzF{vD3$a0y;Muy$_8D?Xcq=K38s{~N{ago+psK}%CQc_}jL7rQbkFY-q zvv3)fS4?M%3vTWbss(AG+pU$h-QXT@7G|O|)iI#7IaJ}`rs&5d7-pB&7W zFkaC#APbWbIWxd4U}l0i-p3yey8ZmPp92`_7^cw;3>#=y{I*D&>^N;R&0x@UBp~<{ z6oY82U$;qvz892YcZFUy#$7i6&k(z)YvdF}^*QUM0w2dZM|*25R2%i*cxc z7MVZpb~emo3lk*G;ZGcH4q!P|L}osY0l=-8f;iI7d*okLCgFs}WBEiKlDDg$&PjY& zl)ymB_v}1|+3|}x?2bAu+{t|3c+9-ASvpty~dlHbTt}tvFO7_cf}6tX_{XVFSoLq8m~2b!n_lrTwWWEqIe+>n{@V0JC2G$2NAQ;OoR1y6QpX(mk+x}6Ij>d zSFxcW3*s4^a0f4-l`(WyEE%xIUzobH!Gb{A8q`@9XtCZ{uMrwK80ow{8ISfxZ(n0; z={{Yztr0!mqrYIySkzAUu32+iVyy3AZ|wFpm!?%jow(~zX7C6T;>1( literal 0 HcmV?d00001 diff --git a/.vs/Phoenix.ApiWrapper/DesignTimeBuild/.dtbcache.v2 b/.vs/Phoenix.ApiWrapper/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..183f14546cd12a2aa08d28f64430f90bac944621 GIT binary patch literal 110738 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�^7)ZJo=bCQGy4TCJZr)zW4qGEK3Gy=J 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 Y$YzAtOk}e{tPWXyh|NYe2b;70AMzbbO8@`> literal 0 HcmV?d00001 diff --git a/.vs/Phoenix.ApiWrapper/FileContentIndex/a616b0ca-f98c-4b41-b9fe-c818f5da36dd.vsidx b/.vs/Phoenix.ApiWrapper/FileContentIndex/a616b0ca-f98c-4b41-b9fe-c818f5da36dd.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..d07da3c1489249bd3aee6b46148ff88f47375979 GIT binary patch literal 93282 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 I_Qb^h1J^+e;Q#;t literal 0 HcmV?d00001 diff --git a/.vs/Phoenix.ApiWrapper/v17/.futdcache.v2 b/.vs/Phoenix.ApiWrapper/v17/.futdcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..97d95f6ec884c7f90d23ea4c60a4d7f0a3414a38 GIT binary patch literal 302 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 VKU8PQ<&#cz{eyN=y|aB&{~uw$A`bun literal 0 HcmV?d00001 diff --git a/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.backup.json b/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..3ed33ee --- /dev/null +++ b/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.backup.json @@ -0,0 +1,71 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\phoenix.apiwrapper\\phoenixapiclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|solutionrelative:phoenix.apiwrapper\\phoenixapiclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{67E01460-3F3E-447E-99DE-90B91A3A607F}|Example\\Example.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\example\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{67E01460-3F3E-447E-99DE-90B91A3A607F}|Example\\Example.csproj|solutionrelative:example\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\phoenix.apiwrapper\\kiotaaccesstokenprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|solutionrelative:phoenix.apiwrapper\\kiotaaccesstokenprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 2, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "Program.cs", + "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Example\\Program.cs", + "RelativeDocumentMoniker": "Example\\Program.cs", + "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Example\\Program.cs", + "RelativeToolTip": "Example\\Program.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2026-02-11T10:23:59.671Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "KiotaAccessTokenProvider.cs", + "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", + "RelativeDocumentMoniker": "Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", + "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", + "RelativeToolTip": "Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2026-02-11T10:23:34.318Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "PhoenixApiClient.cs", + "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\PhoenixApiClient.cs", + "RelativeDocumentMoniker": "Phoenix.ApiWrapper\\PhoenixApiClient.cs", + "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\PhoenixApiClient.cs", + "RelativeToolTip": "Phoenix.ApiWrapper\\PhoenixApiClient.cs", + "ViewState": "AgIAAAQAAAAAAAAAAAAAAK4AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2026-02-11T10:23:33.291Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.json b/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.json new file mode 100644 index 0000000..a9c9225 --- /dev/null +++ b/.vs/Phoenix.ApiWrapper/v17/DocumentLayout.json @@ -0,0 +1,70 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\phoenix.apiwrapper\\phoenix.apiwrapper.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|", + "RelativeMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|solutionrelative:phoenix.apiwrapper\\phoenix.apiwrapper.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|" + }, + { + "AbsoluteMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\phoenix.apiwrapper\\phoenixapiclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|solutionrelative:phoenix.apiwrapper\\phoenixapiclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|c:\\users\\vanro\\documents\\programming\\galaxylife\\gl.net\\phoenix.apiwrapper\\kiotaaccesstokenprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3C9F0468-0B32-45A2-82E0-53D75B28D00C}|Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj|solutionrelative:phoenix.apiwrapper\\kiotaaccesstokenprovider.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 0, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "Phoenix.ApiWrapper", + "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj", + "RelativeDocumentMoniker": "Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj", + "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj", + "RelativeToolTip": "Phoenix.ApiWrapper\\Phoenix.ApiWrapper.csproj", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAA7AAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", + "WhenOpened": "2026-02-24T13:27:47.184Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "KiotaAccessTokenProvider.cs", + "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", + "RelativeDocumentMoniker": "Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", + "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", + "RelativeToolTip": "Phoenix.ApiWrapper\\KiotaAccessTokenProvider.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2026-02-11T10:23:34.318Z" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "PhoenixApiClient.cs", + "DocumentMoniker": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\PhoenixApiClient.cs", + "RelativeDocumentMoniker": "Phoenix.ApiWrapper\\PhoenixApiClient.cs", + "ToolTip": "C:\\Users\\vanro\\Documents\\Programming\\GalaxyLife\\GL.NET\\Phoenix.ApiWrapper\\PhoenixApiClient.cs", + "RelativeToolTip": "Phoenix.ApiWrapper\\PhoenixApiClient.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAK4AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2026-02-11T10:23:33.291Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/ProjectEvaluation/phoenix.apiwrapper.metadata.v9.bin b/.vs/ProjectEvaluation/phoenix.apiwrapper.metadata.v9.bin new file mode 100644 index 0000000000000000000000000000000000000000..1c75bda7dc21ca2293cab974f3ead2241a75e8dd GIT binary patch literal 1933 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 TxIK%7S=^DuqU`^o>g)dlr^$Ba literal 0 HcmV?d00001 diff --git a/.vs/ProjectEvaluation/phoenix.apiwrapper.strings.v9.bin b/.vs/ProjectEvaluation/phoenix.apiwrapper.strings.v9.bin new file mode 100644 index 0000000000000000000000000000000000000000..e191843c75ec53628acbc8a04be56f090a2f6b74 GIT binary patch literal 156111 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

&s!VX; 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.0 enable enable + 1.0 + svr333, LifeCoder, Bryan + Phoenix Network + PhoenixApiClients + A .NET API Wrapper for Phoenix and its games + LICENSE + + https://github.com/Galaxy-Life/GL.NET + true + 512x512.png + + GL, Galaxy Life @@ -20,15 +32,10 @@ - + - + diff --git a/Phoenix.ApiWrapper/PhoenixApiClient.cs b/src/Phoenix.ApiWrapper/PhoenixApiClient.cs similarity index 100% rename from Phoenix.ApiWrapper/PhoenixApiClient.cs rename to src/Phoenix.ApiWrapper/PhoenixApiClient.cs From 2bbe89cfdb01558cd6791448602c9d247c0d20e5 Mon Sep 17 00:00:00 2001 From: svr333 Date: Tue, 24 Feb 2026 14:41:28 +0100 Subject: [PATCH 04/10] Resolve Nuget Package stuff --- .../17.14.1561.44479/CodeChunks.db | Bin 303104 -> 0 bytes .../17.14.1561.44479/SemanticSymbols.db | Bin 151552 -> 0 bytes .../17.14.1584.41681/CodeChunks.db | Bin 307200 -> 0 bytes .../17.14.1584.41681/SemanticSymbols.db | Bin 151552 -> 0 bytes .../DesignTimeBuild/.dtbcache.v2 | Bin 110738 -> 0 bytes ...a616b0ca-f98c-4b41-b9fe-c818f5da36dd.vsidx | Bin 93282 -> 0 bytes .vs/Phoenix.ApiWrapper/v17/.futdcache.v2 | Bin 302 -> 0 bytes .vs/Phoenix.ApiWrapper/v17/.suo | Bin 44544 -> 0 bytes .../v17/DocumentLayout.backup.json | 71 ------------------ .../v17/DocumentLayout.json | 70 ----------------- .../phoenix.apiwrapper.metadata.v9.bin | Bin 1933 -> 0 bytes .../phoenix.apiwrapper.projects.v9.bin | Bin 59625 -> 0 bytes .../phoenix.apiwrapper.strings.v9.bin | Bin 156111 -> 0 bytes logo.png | Bin 0 -> 12847 bytes .../Phoenix.ApiWrapper.csproj | 15 +++- 15 files changed, 13 insertions(+), 143 deletions(-) delete mode 100644 .vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/CodeChunks.db delete mode 100644 .vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/SemanticSymbols.db delete mode 100644 .vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/CodeChunks.db delete mode 100644 .vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/SemanticSymbols.db delete mode 100644 .vs/Phoenix.ApiWrapper/DesignTimeBuild/.dtbcache.v2 delete mode 100644 .vs/Phoenix.ApiWrapper/FileContentIndex/a616b0ca-f98c-4b41-b9fe-c818f5da36dd.vsidx delete mode 100644 .vs/Phoenix.ApiWrapper/v17/.futdcache.v2 delete mode 100644 .vs/Phoenix.ApiWrapper/v17/.suo delete mode 100644 .vs/Phoenix.ApiWrapper/v17/DocumentLayout.backup.json delete mode 100644 .vs/Phoenix.ApiWrapper/v17/DocumentLayout.json delete mode 100644 .vs/ProjectEvaluation/phoenix.apiwrapper.metadata.v9.bin delete mode 100644 .vs/ProjectEvaluation/phoenix.apiwrapper.projects.v9.bin delete mode 100644 .vs/ProjectEvaluation/phoenix.apiwrapper.strings.v9.bin create mode 100644 logo.png diff --git a/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/CodeChunks.db b/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/CodeChunks.db deleted file mode 100644 index b579fc20295a3b0aade48feba8d11e58c8a2c643..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303104 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 Bc{Tt5 diff --git a/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/SemanticSymbols.db b/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1561.44479/SemanticSymbols.db deleted file mode 100644 index a53b4358f261aaa515f768816a0ea832992b6439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151552 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≺_AXCS>|gWTc@!PMKa)#&lo%dsVQ51Z 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 diff --git a/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/CodeChunks.db b/.vs/Phoenix.ApiWrapper/CopilotIndices/17.14.1584.41681/CodeChunks.db deleted file mode 100644 index 42e078c40f9c93fa937667ea4a56263b4dfba637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307200 zcmeEP349gR)qnG5=H8jN%mB$F?1TWa)oSf#?Pja(*Q(X7R%>gkUA|WBs@=Z-xi^8(1ZoYW`u#%dJtucLbLQN8 z|M#BzX67t7X?9~x3GD2Lz77Q9Ux$w$QxHZJ{+jVzj3uI##PtO zU09q^Jh^)AyoJ?s7tNksJ^$p|IoXq!RL?3dsm?B1IIngtWXvhfT{yYDm6YDFscl^K z!s4lD)zNa%+}e{C6~loE6Z)~LCOZ)j^4e=im7m&OF??+p+0s?npB zvLZCEr4|hY%scSgfjc^ucbWlO{`Jo&K=Bej#2} zn^3%1Bi&K$sY~;#HZ-jk_grdeSihm6Y5BP_uXaT@Md9{4uAN&bo{Ek-WczW|^X68M z>qZK!BeT)b6UuXgyeg4UKA0Dl?xuP-S)l_h-%XAEJs=9Z8&U@hoPS$kpLx2D&2~Yh zc_$ZZXUwG$I==m)6RJ-xmWn4A=jMwGszu(M`gQ9Xo6Z_vyJ7;Fr%;?-#6-$x7v!^r zVmE?B*HGn7f<#{T5-`fw2Y6Lxtm5@Qpo`nDyHpHe*|qIi!S4I?zy_WAvb}&hQ3^vJ zjy5=<#s|&)eb`>D^G%!G^xA%DJ(~P;>(@4PKUq3@d3Hn7Su~;k6<9jT+wbLI<()fM zRz09gI!&^Jc1+4-RkOw(Y|eHz)Y4ezzXIOroL5bnq?Fh1H}8VB=9Y#PC$=^>iK_em zG`cbJ{?dP$7G2HJ8D~38lW%TnYiRmcTL@5g?%mLOzX(*m}O!ym@r>uG!B*sGj%Mx61DfO)$M<3 z2N>*M>W**1beY`RuzrG9r|_!b!ZZakFIn)F}D=`~lw#K8D@I2I^Pn0rds-1pg!cN6^-*jOf1dP?n!ox2UzD zrL}HjeN#(wUB~5G>*lvKpVd;ob}g2Kx*7Fr>NlM`yK!Yh-Hh2&=N1>%&0p2r(A2nT zYIa@Y;ub6%4J~yu8k!nf>f0JtbgrIVv!=1WX?a6y-GYYtmgTG3$;mVpTHA6P8rQ67 zXqmdaRe9m2>CNX(9q3sm)Uta|tr-n%(7dgCg*N^Ec(0!y3RU!;Li;RsP?b)p(0$&> zcdJoxQ~la?YZ^NGx5M_EzB%SJ2D#&UDz{xeq#*OuBS{FAr)$QZDT4?Y9sO9vIh32oRZ=>HUYFCgm)Vi*IIhLP&d0li{)*tK8 zjKio}`(_1umHe7U?18a1t?GwsEI9nv=(HhfUjaSMhNXjt@lxGxwB%SM`_@s?#i(A$ zf*M1Qv>Kfk;7)uObB+vD0i7hY;AlZful$%hnLC)p!`M)oll? zCIzOfXe=vpJ%14PKH`8ZyZvCBSkDYViO7+@^;~^x!@>saDzW>g&2+aLYHySQ zU5ZCqm-ZD3TFj}(wx*$pybtovNU49x>M|<5u^c+i`LF2Mt>On=Xm#j$#COwjaOImf zG_}=PC1&v~sF<_1N#n9onfI?p12#NxiAtK2L6+_tbTZ zJgir=`cGZDp`K4Gt4G>a64yl91we-M%7~U49Lk{^?D@4aKhloS8X=W5=_cWa`q zr;`=lV6E)DTY2yFoLYANey8*uIjRGeY2J*(s986DYX4Q5x8U$!qN|%a+0(Rg@GxGf zTPI1H`QTov-7E8}^N8-mcNxjn*_yZbFq-5LK5DpC^BNE1rMk8LzqqKOURh#fmmkb4 z40@(kjvVP5@9Z)h)IkmO%4)YC+Ye?E(;KCgi$~fd-MX9a)K50Nv08b~e?`S^^*+e{ zg`cc>s9uhu8IfDo6di9fl6(i<}H7>rhcdD zbauPdUfC1wpRN12F1PMqt9eV!BkTeT|G$3fn&z{@_7gtMe%NQfX+LcL#D4BDIr4pC z`Yh0Afj$fLS)k7XeHQ4mK%WKrEYN3xJ`40&pw9w*7U-!3Y`;2M>GUSfL4fAON_yLf}H@Av<{-~Z)Le@EtJ%)a0M z5A}e0-|zqL_&NE$-~W&7Tho2N|9AWRQs3|Y^!q=ZMf9Vj?_Zw<`Yh0Afj$fLS)k7X zeHQ4mK%WKrEYN3xJ`40&pw9yTUoAkt|M&U-|6hBz@4osh&}V@@3-no_&jNiG=(9kd z1^O(|XMsKo^jV*z&>^JP+*st0@wSR1X-~NvME&EAXC~Nnn z?==ftJcwz&?aui%;&qUPhzeCR?fjbdKqfWQnl`LiGr6XOl)jQwGpz<6mS~UA&>o_p zQ;dd=kNArq4V}X-bcAW>E=~hJfYTAE;eaOlzHm_|K9NI7m#5>WCE_)cYYGjm%Uc@P zwKX<3K|y3JXx`AWydmGbf)vKz9f2<1YwAO_*^NyN_*_g2te%KZuF0>eZ)yKiTAs>_ zO)F}qWumfF{6S?GPOhm%{(G@Q+QcZTscXUwuBvZc)iI1(>YL6&m&iM7Si7uY#R`P; z=*U=uTV2|z%7qt4bPUa--={+}ikts`GBVqTUiSktnRs6eOzMuqH7&bPiJA^9%YRO!0nz&4a6d;NUzo zZl>NtxOwn9nsyk0b8Ed{^IbZlmw>b5i+LTpQUt&dH`9BIayJ_M2LmLQIU)n38>J3w zAFox=$4h&=j}QDT;(x2357gp6>Ff4o>@e@{_x1IGiv4SU!zZ1729o2BMdG+fVo@Yh zCLx(P7Rgc7NJb4sGGZW-!Tpg`1d$9tjJAF8|1yaG_kBbF%!U6PzAs!K9vJ#Y=%SDt z{B`iQ;G$q4@P$BIV1oIgd5t;K_`C6-ah5TRKf^EK$Feur-RuLbpZ-<-JUy!YT)R=5 zr)lbE)Mj;z|A+n$`3uTh%Kgf6Ww7sCzOA_6f&Xe9=JUdSCFjKA@kG=~lv0^uK9)|D zqJ?~^l+9(_Xu259=c0vpBA&~nl10bKQ<8NO#au3#h{iHeC$H?Os!d8!`ApJ@W!yrd z6i?>zrFgnjN+$~0f*XyelclU1O~muXOe|l@C9FDwaxQ^QENgI)!v9g?g!I3i>7Du@Y`1??B~r zK6C!S+PG9I<+$;D)XBxu#Z1OYI*<`7piaC{N@U{svOepn{jc)LOz;J6qCs)?k$%pM5FOy8ZDhzG~?u= z5Rs1O;+dkGbBoDRrjSVG^3hZ-TlDRX)E+HGCEXLOP#Iq>|Za2{w!6qOoi~6Hj8SMV(kF8H*K?v1l%lSGHBo zoG9-vQOd`hm|MyfsB7J5E=LiTF<=sL*DYq^&@1o2U@6R|SRs>5WKzWx1ZCpr>1-@^ zPDSkmsZ=VHNtZIkbTU=Sxur}jTEwtU#9}E7^i;eU#e~7^EXL50(QG;$PZcxSn43$* zML8whG`i5mq)J3n(QFpY61c-sA)QI%9|mcmkVvj@~3B}KXEf|F0=647ENQ7jakbSz#hq~g(B9@*(Au)@tdE&#>> zek60nY&?Ve#$|yui9$4{tQs(LEQwN-Xfc*fVtys#WL6BILbBvUfjgNf;2{qzOQd5_ z*L7)1rn2d%lg1=Z7a=s0$;EP;`qz$;N@22O+&r%BpfKSSN^Zu@=Ck=!Ap;1A#oTy03)XVotfUf9+@~3TA)=^iDE{TTf-OrFg0Y7%4`xuopT2 zV;*B8jebZ2XfwrP-Yv#+PCAXL8wJ8_>0etTMWu?_EPCI~Cmf7iG{At2r`%K=AXdVZ z#B5Hdl2Obgm@Qw7=F&Mpr0bSqP7xT8QcmkvJ4%WwVD6?exm>zbh(WtzqL{_Cim3ts z-HqpxP9m92m(rNtnOq`+OC*Zv0$?H?kGsi4DywYnS6eMbWijK@4mv5BETThP2eS^H z?!Kr~%4U1!2oj|z={Rl!h@Q^@d^4G3 zBIYDwIR`V*!SGKySr5{ARREs#Uhn; z3&}*xKw^NK3z$!36WMse0oFwUhq!RuNn~TG94!&6t=eHyR5F%GVHrp|IZSfg zT>;n(pv4@A;q!@XI*Cz~#iEu1UM4byR32F9787nMiiINUDD_tDP$?>bdI=2Vtcw|% zE2h)2jFU~ov5=OqMqpsLg%U6Y(E?t z4&x6}94vy_Y%T|!a$@;HDu!87bcz`lcoM@BhdwR9X6P9JQr1Y3{IjjI_<=jwhRl8ORm?h=r z-4p;QkL$)T4hv}vP}mt@l_RWepjk45 zMbnK(VN0`_g#cSUm<$b>)_YapgWMp+-It&pM|Yy+^k zU=>N`Qs{vaU@w)9Ca~OKi%=xHByq=B39+|IV?&sXI&okKG>sN8+kE$!wFBC1l}=#S zlFwr!16w3w(HJ@o(;Ev#%t^Y~{bcfaj1z1{a)2ppx>EUAE{6`yX92Pq&qAe&EkvK$RfrJI(>AW)7sI{diHxqRe zm=u|4wCG~CWn$R-VFN>I06POh#icR0*G&bhZw5vR<*BVk3hC1Lamx03( zO~sN>Ap>~EdgG+BDQx@-*dwIS9nrLdy-fx%kIim0p2ETt14`tSTD_LH-(WHUR{@*Z zG*!xF6NO^5l)}}q)+#d|!G{$TUw^vNTPs2#XUa=HU6fnFC=@=FvOz1+=#nv1?h4Qdgt4mSXrsOb` z0CEn%2^VzZPN|4)Ex-}PEXe}*W7s`sFyD#*u~-zB0qy`q&{c(!Qmf6>NR*!!GXh^#16U`#})}b0v2p?hiK4lR%=zM6t-}=gcHjp z0deptO6X^?9nE0@f}aTt1Kg$3*vDh#CI<(m!-|TX8tx^Uj4CVDnf`XAa)5PoF!qTs zZ`OrSzzf|-F_q0>6k)}}eg(ToU}zLWE13XDB@5^c^g$xt;GdxgNoEE{PZpB^S-8OY zOa|bDMJtPC8C?#H!!{lx76TO9EdWR!U79Ljl)=x)zza{0@*`F3N5~^T)_z3)nZDS% z({BeZGj0t(qg@>QfU!g!7rfo~=fJl^|J3{YKB3=Yt`ENIf7$wFAn#wKeZ%;{}aAEG$k0ZKWqM7JHe_77kO5FOWCSE6lztTv`%Le*kAoO85PQLtU2^)y5PI| zSJcq0P6=K*Z59&bZ56TN<)fGqnIyLH*j8eXlul+bmoq?}6nq(YEiP@6FmkYqg7YG! zU`vq2UJVl;09A0Xl}SdaIEn$6i8&ZAQJ6iRDFF`WXd$JiClob8N>2|bMhPiBJ(s9%zoVWVNsJUydU_f$LP+W9NyKm=rKg7w!-SNc zo<9r~QhIvyFhoe{>8ZnDA*H7W4uhmFJv?iu5>k44%rH<$>FEhWL`doB;X8U|TNa^W;K~PBP z=~+QQNa^V@fhnZ)^n}2Wchtkf0WPHU^jv@mDLp+B(1nzqo(5<_N>5J$RH;i34gugf zA0vhI@F%+o^!|UrI@@Re4bT3+ZvV=D#eNY_{y%Gf(|*E!-2ROHN&9~LUi%LFX8St( zDto*AL3^{k$!@XN*emTb?bGaq_FQ|WowJX%T{~(|w8z*Z>_PSbJ7hE4XT5Fx!TPQB zn)Orb1?#)k)7DegSFFdZN392~`>eaI+pHU{E3Iu-*}A~mXsxq$LXp0IeHQ4mK%WKr zEYN3xJ`40&pw9w*7U;7;p9T6X@IJSIt}4pJrIZfKi!>+FtVpMe^aPO}PwB)nC>?Sv zrGt+V=`>0QWki}5X^PS+SEPbc{$xQ`)aaq@yUct3^7JQfq`rhl_L=rQx9>9YSenut*0{8mtoO zKuQAPuX9wAG05|AGGhY@3wEVZ?t#Xr`wC* z@t5r5;qOni$Jrz8D%-ZX^-t?B)*JBje`0;l`nL6i^?B=I`1p5OH(S?O+u`A#Ypu5$ ztuw7tt@+jr>jcZSrdVUG;a0>7S!($0@SEXZg*@@XGM%;YHy&;X?SBa6CLQJSsdWY=>Fs@1Z}0eiQmx=!c9h3dx}#6lYxF@n#;EqT_B*^0@`CoP_N4Zh_KJ)Xf zI!Lut-T$`#b^kB?FZiFOVa&_RH3btS%XxX3;3jIkTrark$U9STbNohmsiyc9rtI>w z@)^i9*%V$r9eE~GE;Gt?qSUv`&&wYWP4e6*pC+56RaRainzS0_Q)OOKHOh-+o7+`h zJ_RfUO)$!fWaizPQC=vk-inJaknFKwPnPUdv^q&#DUNH-MH(xi(vqiD*W`mb!iOf?`e4=QrT*b?^B5wq4e5TC1f|qAV?owVZiPFJ_Q7%d` z+aRVOi!b2iyyPbGa!yoqVS=ovsGJLJr_16UynF(2y6;(DK3;Ij3A}uqb$p>&EUt>NX#qJau=lVs^mTzR5watSX_ zklbagJYKXo#VC)H^*(~$J4&)Qp~+ZLQE^#$jHtN5D36wjk)_Ke*o3iEQ19{mHnag1eF1T43mP~4p;ALHMn1z}s zosH3^ipI(~Xyq5hzB^c1L9wZyW|V!R)VITA-WHL!nR}Z>+j@n<8bMIVHbpW_cf;$J?If5GrK^q0vpmJ}6;1;8Co0M}kV_qvVP5pGk zYms@kqValBF^k6Q1P2WAngur0(Fp;#_Zg{{% zns5$U0~9ea$KeiviOBTb9AX|&5qEeh_W+709RYy?6ZOF`uE0dyw+)%VM3T7G@B}F8 zzPliiKoOUo$UR^pTDuzafQgE!oz6TUBA6QH0T02{agWf@)O^n}kHFB>mKYvkAzn+p z8w~-5$UBvJ1cjz{0{4J~RR1H~BP0ZO6Y~fNP3=PN2^`dXH!_cK(A27#2N(o1l6gQu zFj?ji2%6e-<^co2jNqO?K+ShO_XGlJzMb3y0+RF_m1`>M<>Jkcq1!8!BK}ekk)d>X^ z?L5`+0E1L~dD!p-4r;zDF)j%Qk$W|&0tiucB7_16DRUQE2`JRC{urKsLe+OSDi9PZ zDz3^sV4>eseYbIsz!2P>+yfR8cZcB#EL4U5z(Q)X3qzB@P*L;X2n|v5cEbZ0QZW`f z4`@i4cNreRAu_MWB?TU;zMWtR50MLa_5g^)-UJqiNbC(TFEA1E#~>4!NSW6F8UTvK z-iTa+MX*%77=N`ZjjmGJQ2W+I`Z94M^98Gm2^MH+D&gUMW5!Kdn<`FcSY8&@} zjL13xvlGCGtP2bexJV){Qke&2L|zRiSX5Ni&jE{c$x9faqN$$3fQg_RH~ScVD?6G-OIFaR0; z&M^UF{zaTnO!3e4b3!r2pY}6>V*Zoxb2-%<#eiX;GdU0p6?8w#iHvznz?XkA7wF|5 zt8xKe{^R`|*oCUI{7gWXzr+M``HKv|1zAUNpcX33_H%$1nB)8mkcE%jA;xg1$rU}M4=$7G5{1ZCi0_2#&nenZ1T_XGlC}5KZOC9 zK=T}^geGy70h5rikPATak7FEogp&Dw1~fuRfdh(=F~VQ~B4o_qKp|wfetooND&}at zhDZ$?1)_}dvudK%em0WmNIx4vG~#E&i4OGZ!$8epY$*LX#LtEh9pq<&iB|d9AfiM4 zdKIWSoDHNuNBCKU=wLsqB-+ofS5R@74WK_QKkHAl($D%4t?)COXow!kpK(9E#-F>7 zUg1As_hzKi?wN|zy{jH+;*J4Gqqi22PQ7^p(#bbYKsw?2(~yq4HiUG{)$}!hnh!N2 z9eKqlq{Fu_Kssoff;4h*3~6O~IbF=MS0eSzwEu|T|6j77!#DpPvme5*{7uzS>vvD#o-JWJAaW*jC zuCa&N1MPlxz}BpP;C$ds>o?Xfa6<4y>pAON*4M2sS)a2Wu|96?!8yS$>jvv;Yln4- zb&++R)n+wWtE^>KoplP%3r@5O*6~)_id&PdqpWIch*fD>mSOqBe+&O9{5nn!UJ1V# z{(kt`@HfLx;Pl`#;ZKI|58oTUBYboCy6{!u?copN3}I8aCA*3oi`M4bKec z!pDZ)a1>_=qr=0(k+2o!VPEL2(3_!Ohh7Q&IP~4nw{fEI#n5L$4~6aveKfQybbaWm z&}BGPI6u@DS{qs!T8eXplR_tk@}XmKvM@C?E>s;FjI)JcNDKZw_^06SaJukv@Q19sr?|(s&G?9MwQ;%eLE}PWqtR@v!fC~6#sZvI6piC?Vi7ea z7&XRFqtXZ)jQ^AWg}=dn#ec?M;Lr1K@vrg6`KNJuv6tV4^NZ{Fhj4=7@$+~qU&9;t z8GJFH&uejxaSTu5B;zPPk`Lnjd4Q|zZ|slkx9nB+6ZQl4Ec*ug3i~{JggwCSWw)~% z*)?njyO?ce=dg9Gku75%U<=tCR$?cxG>fr`Y&09jBFtiVElPh&e-o!1ujoJ4zpH;+ z|GNG~{WJPQ`hEIG^KQ&K3E^1 z2X#&RyY?rXeY~cg^C3#Mg?@02jB+p3lv?Sk_$~coFt!>bcS>@HB)3a)nmrJr;lFKC7Cds9eTq4QE zl6+8-t&)@_@g%uOk}Z;KmgGW7E|BDWNzRkxTuC-ba*iY$CD|ZJnV z5=l;#WU(ZtNU}(hg_10g$OEOE66D6sYWTqrDBq>Q!l%ya@ zUXq+7SxKf7(UlViBq>Q;NgPR%k|ZRFOA?bLD#_83OqFDc zB$FkXB*{ccCP*?~l5vt8CCOMx#z-<+k{U@yNm4DzNJ&OWGF*~jk_?q(h$Mq086-)S zBm*UhNKz?Dg(L$c=`Tq?No+|hNy3tZBne6qki?Y4kc3OZB+(_&BvB>tOQJ~P6U6sV zN&X?p-zE8*B!89UZAspe;oA~?#CIlw_+UWl20qE)u_-ZV~BbkzOd$3q*RpNY4}Lxgy;p(sM+*QKTD0+9uLgk+z6* zy-3%Iv{|H0B3&!eH6mRt(z8X{DAH9TJxio3McN?J6(U_O(q$s87wMTI6~Di$;8T=JEYedb^)C|XLXj>I>B%BJNu={dI!~l?MLI{Mvqd^fq$i5B zR-`jUIzyx-krqW-5NTed;t2u2ctXH0o)GYhCj|V*i_+snDxMJVizfv9;t2u2ctXH0 zo)GYhCj|WB2?4)&LclMc5b%p91pML&0l#=cz%QN<@QWt|{Nf1#{}dr#JR#s0PYC$M z69Rtmgn)m%C>2i#_{9?fe({8We~hM@%4kYzC>cdbHFoP+8b;ZHcY-~h*kdX$2b&_+ z8Sn(yB(bsnDX?*3r`Y#`J(}1F)?l!ch#eE!4t6}TqXK^gJC@jC<{Gf0i5<*;47Qrs zN;Vhl5MujjUjSQ0Y*3|-0}dpXDYu8g4^!6r?2p-Jz$>2}ek?pb^r_G|{0eRbHo;Ro z&3MeH;%)48whBJc8QPb%jQR<6g8yFsamsq-IW+J4_n%mxewgO-X5cgYi&`66TH8Ou zUua&wVQoWGTWiP1PQ@qqXVkB$-*oQm#+3~nAK;(As=1-5ansc7y2iyV_3PF(v~+xu zA36CojSzv)q@FbqmsoJvFVX3$xX8Me=Cd1z;6jTJ--Tv1Hn-JhmoINca+1#?Wb_K=LXkAyo zyrFJ?URTxBN~jj>71cXOW`mqL8@ib~)%~DD@d)=vyAJ4(IrWWAZ4FKJP0Je=He!%;&FX5VF*a13^WRXh zTfJpwS2YJ)P&0Le)tuc>k40!%bA8K-x>MJcTAJ5p+uG`vuRh?9uDa=A=ys$>{DHbb zqpo^XgrLWyUbNBT`j&Og7;>$3`?zkj3ih&ACpT`aU(>p{xv6d+*Hx=v09p<0MO$_1 zzpmOCc-o^JIl|iH>RTHYHmqHTl}$iH_wXGypvuVJRHd_CT};!=vGZJhgw^T1r}iok zXX}X1qJ423_RXBx%Q~@L%;4d7rXxRI_iH70UO0#_3v|Cx}JfBdR?o1UjHHd z{~(^%FAwcaTXpKcE+Z&_w*$(NBdtwmKbw62ZvB4~Z#R@j_NpqK_3C08W1Z$LKho-S z_WyaWjMsghgRKYVximhiRV9pN&b({Bzp z;9dWP;S=$MemXogJT^QuJRod@{((3Be--*k=m(*vLthJhA@new%D*G@5j>NBY3RaG zYp7AY=RY@8#MAf*@t*&XQ2!7M{x$e|@E5@sg3koM7W`cB!Qj0(-Jo~;FATN@&%!(Y zrvzsQbHQ|QYH)0DXs};U5BxRoM&LC(Z%=Ree?IUK-txaaa9!Z?fEPF?utvP)KRb}c z^Yv2$HGx3^JHXAqnQxk}Av)r7?eF>THgClf^_QDl@SgwKX1%${oP{Up(|C@4lsVY6 zOdW6e|JL{!o}d4=@m1q9#wU!sjhpf0{5HJf-)1x#OO1ubiFjf@VT?CM7!`(zXXXFQ zf5Ttq-{s%rU*r$t8Ts4sg!~RXAHR{W=Jj~Pe=aZZ3_lvr#Sh~Z+~hty6aP#0BKr<| zl0C*AWcRRJ@Fe^;b|GuUQ}Act8Tb?N1iXXD3?uRMdqDrE{s;Y+`iuH=`jh%&c;WTXS4^jyAb*DL)r(m z^R#Ad1>WqRtL3$6+EhHtJ{V83YwBC-Z`D`SAE@6_zpOs0eoXzS`jPhc`q$!pvnA?W zwV+N@qv{xSh}sYD_5W48*Z(8`v;MF9AM-!F@1TXpFxKt*V zWcMA9LWFBD?mJHPRUs%&I>qlh7Nv;7lQ8yPfJ}s?a#MWo`N%{R9b}$|%w!q?;rQN7 zR1@LW_}&(92tt%J_pVcYgApbq=0y44X5=E&4w|n9hd68w-`hwv5uC@^yNWKENW`OT z?^#eI?jUa^@(>dwh9)ae(MeLp<;YBDVhPvSyNuc(wx4V6J(Dh!q_8gL-lfDt)0m_0 zJwx^NPp6E%r=u$3GR48xQ7e4X7qS+DMdY4j)Yy9xoCTZ-|sVd^y#Q9#lKNvwsptP~qhfKs9%VhYTEyzqKV`+0w8!3et zO>T_sfqg2HFzKH4BnjcAqQ)LrstR$(+?cVaiP|HeO2*i;7HkF|CQloC&IXHEU+FmC zLsml!7YHD$QTR*NGxRLbFd7JVwr4aAw`APhGm?rCq6|jcGaT*X4#EK$dxp`aQV9HG>={Zd#*}0386sp+ z7%gMZV9G|ctGKbJN>oPJHe=5~uoP(o?IM&LMc0^nDySX8FJVCJ89;m-fo@#3r$1?t zhUPZvx@ZN4nN0=31gP>MYNJDT_wmVK%MR)Ix(N!~Pm+g)s3sErn?y1O%;iKei_Y`Cy zUJ&0sp00w>tH$nekb!aR;)af*rsy$!_gG9+bnrt;-VpuD*g@kBU627w;|-J7N$EQ<-ulC8mmw=c(OLOr z$cZE|%Z;55k@}3Z<^aq7m5HmUA_%{4N-}x zu}yS9ERFfLErm>kZgY)oWOEoZikdJmuo_0+b~JGaUBRH(AIv`1mT8L zDYg}pu)<9y`BqH92)Zi9w_*lH5PmLhZp8$|6o#cUY%6-LBJIS?t(bto&O|(pOw7Ov z#Dp`qV*a5g5v?`D@!Tt*NSkGcR7BKZ*VW7D#Qqo!7kPet`TU~@J>b(ST7pq9?i!XLM`Fr141}fD^FlJ(8r_s2z1GC zZjI3G0t z^KpJ22}SfnP9qOHiIlO4Bx1?WFbu&81QX;NsWRd(8W@Rydh92RHo6u%$~9WSA&j;g ztKzaj~q-yK*Bs!$8IUZ=Ay{KIyZ-kV6qsW zP3l3YF^k$`T}~S(g2O%$2wICmM5lJyOcDt}Gw8aAIL%6Qo0tSeYK~16FHi{rTk||I z*rf0r7%USBBP%XOOB5}sKo%?_H2Ja9O&iD4WmAZmZ2$!@EwMK+2nA3G6HNn$Z4iu} z0S9SLf&&;LNo=kRAVU?xP-Bw@Xuw_tQFb|?fwo8v2QFad12+H+0PjSK$HBm64#)h5 zhFGb@?8kg^I8A_5IZfy|BHJ36&zLJ|Y#}k9v28^-az-;6@hJH~5)b(dGrIz|&@rp~V~Eg{ zb}8JsA!amoSxEysH*_%q7BZ|L71-}ET0Jl^4NP?yHR{G077r|3agHgEnGkmkOn6us z%a(x&PnL%*FyXPW$|N{VcT9>X$83*K)Iv^k9ie#>_~;+yL}Of|I@sjtnDYHou8HZ6 zMTx@v8j4EJRPnx?jQ{s0{Z+8vWWUn41_6MTv2W6^3BF-I9{jqo$Q}{i#UH`D z;j^vZsyDKij1%^_FU+n>OA9YK0J7I_|fnz>qdR5dL{p!x>Y}mUlAA`e8_k^ ze3W&X`gZ6MHc|by{!(DE`FD19$#eclUp6ZP7pAe?dDx{2lZ6)?0Q+{{p|>%mw?0ei*z= zyNWHc9|)U9QvIQJlf6=(X2;dj!dvk@z#IK+JE?E9N=jE6iW=|Iu_i!ght0 zSTpqt?KsG0liEM{x8P>=ey;GS|J6Xwd|n@FoxrDs zzOL^z_XK`vpR6voPBN}hhuV*Z?$ketFY*oXexc`yAQ6{yKCh`hp3im(qGtq`z(#TK6g@pSb`HA3#`yY9UtNs1yROCgfD%}6b zk3}nT|06FDE8PFcb0QZ`P%82avBLe2JWZD+_doKas7mgCWSgi;?tkP`QI*{P$i-BZ z-2Vu68Bm+t|Hws@N$!7Si%?3q|B*If=XfI0A|#RfA6ZYVaQ`FgM0;}oBTd8#_dl|h zSmFLh&K8#f7DgH=Q@H<;Rid2S|Hw)zC-*;cx-7?@B~nMMaQ`DqgjU$gM@}J*-2ccT zQIp*N$O2-8`yZ(#R=EF>8B|r+IxjNG{f~%IMDBm&IB|c%{f|tes^tDh#)#pTj7LU` zV&VQrMpAp>{zrz3OOg8@875eA|06@CEOP%NLqs;MU6H}EGTi@26|utoj|>#Kep+Ob`(OE}V9EWjd_o!}imPH5R{06ag8N_jamph1zw&;{f-_h7F>w{_tt#&&8N&Uqyhk)ek5%4H6EzjD z{HVA9x&M`SQ6ahim3L64aQ`cB6fC*_6_Z6(a{mVm7T3c}?pH~f!u_{}F@YJ;(5qBT z?td^ShXuL+fh1KG?mrt!70CT(?c)vZKNI6kxc^LyH{t%XfdWxtEJ97l{nxG&(lN`m zYe}MT|FxYW6Yjrujl2xpe{HEyj@*Ck45i8iMhlh5{nu)!E8zTT;%f8`S5$o*H~;h}%v{wrHZ58?hRn~4?fzjC3_j@*Cc0&#il%9V48Blll9M{sce zl?}v^`>&iJ>cRb2juVZ^{a20^cbmqCCZQO%@k)wnk^8T>LPg>JD~_m^QpBJW?!S@{ zdXf9Dh~6akUpZPzrrVxMtZ@I8DZ~o*Uztqe$^BO*33aetRwjx@1tE`|rC|lw%V6c8NaBqqw$;Dq>g(#3@PkM9rCb;aC2#VSSk|82wx|G!m8K=-zY`tbkP6GQ(0I?<5)|CQ}o(FW0u{Qnhn8TkLp zsfhglWyFyGUr)-$6F{XZMfm@9#0mfZG{KSok39qwApieV;)MUdm?V(@k8K5RhW!6U zltupkLdp{U{{rHK|9`TuP9}O1{9Z?kpGX}4D`S+2660(iG%-- zJ#hp*mq}ytLv8Z^j~5*I|Hlz0{QqN#6aGIoKe%`D|1;E-{C_|>?w$O9U<2fm|L=;6 z!vA-OA^$%~4Eg^FV#xoG3kLrG6lw;u#GT2MMgIRJQHGt$M3IAS!~|l<{~s@k;Qx;! zhW!7dh@m~ySYpWk#{vPB$p0TrS>*rMh>MW_KT5R28d*(Q@ZFs#_H2U{>Hm+QQu6pO(hfx;!|3d`>|9=RT3I88UvyhR@45F@p|6e7fsGv#rg)h{&J{4o2y_5u9S_wRjU zfr|&>y`=5V`8BmoD;hQ}Y}nLRGwuAEd^5f93ASm&nl+PaN=WJP;F@VQczC4!%LDD7 z9;n;@?STV6K2X=`z4(sL4|IHNpwp`Wb$DE?si6h$j;#Q@|APf}`yPs+8f_x!@_5X& zM7(BlO`)N6c}wHEw#McrD2R*&%^O;lH{_dFkiz)8)VQW$etp}j_nP`pZFXZ*1D;K7 zfvFSm$u;>^^)2mxO3PDuv1vukv`kc%ia)6A!pSwY$bT<(NShc%HFZt6!BzFGu)DmO zminf%&?WMZhPBHYR;*}jI;$gN4Q_R5rz#g-9Kp+J+mC*q4$UZT{{P9yY#(~v56ooZ zeK9bpI}X>l9E#Tzw;%JK9+&&jvm4BG-v=Y};QB-P&YMmmIFq zIS4PWzQ-5zLzv?I0GkI_|G>d{XxvP_hj8=YcQoxV0_WCxyv}^-j9voHj^~v-cBOd# zS=>zTEy~?!@E;72SmuZfkZzPZtbM!|@0ee@w72`X{jSi*^j)$4RzDx8#edS*?aSC< z-reu(>jM=#oc&GyzwW=)7j6iA*0A(?uzmmfEbv~jz{MxvGeMWDy#zsei*c!dVd-)HbG5KEFC%wblJDdP}@kD%5YWtG+^ayT$t?yvp^_k{o z(BZwe?|OIB@Za3TfkW19-<)-SCXzWaTel-}U$S!!m-9IhUmSa%57zg^neu-$Sl>q{ z%m3!S@?JX6`!~0BSoZ*f@VUbG_?h0p zf24a~to{d8|G?q-K3ew=dPj$K#fSf|EJxsU`z`wo`7;d=mYhu=gLzn8;5 z2tU*QMF2ckAHFqwefY}oC5YX(G2Dcw|4$Du3eO1_!pDT;h}kzPJSc33S?KThD!^|- zKMVa3Pwjs_^mynIJnw&3=;qMQ(B+8KcW!81XqEUbz`W3m(D8`UH#syWG!!xV0wE>% zR`3l(=zA&n-QYKZUkW}Nd?5HyL_VNz18feq1sm~gfCa(Y;0Zwo5&5cvkzgS3&%hr8 zzY4r0z6|gfqVVlT48Cg-fo}`q@2wVJ2ACC?9&iGa0@VRLbQ|!Qe=>h<{=|H~{ks5r z%-hWC@Lhn5@Lhn_<}z~$V(b;oW6ZcY9`W@m%^;%dy=A;^ylVW|cn*>E9ydOPxO#UQ zHyT$Nm*U$18;sS6sCNqD>17d3Z;CO-7;M;v#^2_z^Iz~E@n`rG{Bww)cMsy{U4!U( zn|T{Qo1clV1I$9)ycDA5jpl>7&2{!R`yG3Q{g6G)zQ#Vs9%8%MF1C|xXBV-JYz?bt zi`iUOV8^gH8^?yT3TEj4(Eo_YcrWYU*T1EIMgO$^fPS}rv;JXyo4#3Z)f@FQ^hNqC zeL5oHP1bAlL3&tMwYTw&fS+qGXwPa-BL3Y&+P&H??HX;nc9FJGTZ_1NOAv&(s2!t4 zwWG9Q+5nBKe@C>tU#c&u&#T{1A6Fky?^ADAuW$cOz#6q)U98SlvuawMqK;MvsTRHy z@V59)zzZ10_{Ym40xZiSwzvoZi)f*|EMma2>ByrXunL=l$n6LN>sOev3$f!V5Uj}% zc^rXY{U*Z$nq@?SMX7HWqM(aduq=;or8c)C zz`2MC%ajR589`ww^KJxDM_gE{ieSxUgoY*dSg;5VOYBs%qWG{1i{qMz5DP^RoV$z| zu~h6ZUZyay3LA%F5h#|;*NrkF#iE$PB9|#xtin!3F~Y^tZCu666fjm{BXHvg8B2Lr z@G@e?5_c&tQ_xt24K|E2!p4%AZ4gtC#TW20V#iX&iM&j~V-@DY1PC8X>YNL05kZ!U zci`nx;&k7$yo?yK6z%&2yk;u7<9HciWGU}hRu+L|_5QppBFXCWp{fWat8YXnh*+}v z`9>MRWGNi^7?dKMEH%X&rwAxZ;mB`+u81j1?DeoXqRLX$v1l#=%j#{sEF#P5h`L)A zp=EX42x7~Uez)PpRN3|-l#1}OdJQjAd|3r=Nf~8Cm?g$)+{OOvho;Faf4AFElY2JwQ9sw#^5TWM5c0-&db#z zQ^R-~DVnS_$|GbGL;)`k7p2Rf>o8G@S8RvMYv9e_A+jE#d6x%^Onl?NJV><2>8xBO zT5RIwfwB<29TA0d`>}GRD8yS!6;j+JqdY)}Qzm1w^cVGXD9}%E7h>qzqS$vMbg@L^ zEvy_COdT(WM74P+3yQ2Iyc`f&=P{#f%9fW8F@aRU`2E1+w0i z2=aZtWG_aL@ACw!9F54{=ZdNWz-1$-;T_|2HGAWw;*`gvI z%k~;&F@+&tC5l^7e3mT6`@1V;@$D#XkeL$XoypYXPHM}XlhFgkFXFw zOWloz07K-R$~=NXQ#*lsKtihj5$+KZg1d=%1cat`A@>9hYQ7tpM>uF|)yxA7f*Hv? zpdgqm^9Te@Z94OSfnY{(PavS?yPkUj0X5%F?g0Tw`VGtj0;1X&?g9T4Ma$vFfq&qr z#{~XqzH6BW{6n>I%me&^8Ekk!Ke~^*U}oSSNxRMPfPa*E5iAY>Bo;H@0|Y|gEC>Vw zf}0JF5D;zdFgyW(nr{cJF91;UVM*}-fYkhUuz)~fw}Ax)5_=2k5(;Vv|!cAa-h{WCi^8ynge+)8#iIjN_ zpaGyr?2X7JSOj}D$9wsbrHLnSQDx8yxJU|I#y#L7B;}Atu&Ai>Ov3{%QtQhH;st)m z?g$wkppkN~4B-ua*?c?q0FG!hPB-w)GEuxuXC8s0scvNWo*FUdciWJ+e|k^$>Tmg64sTY8E{7{513qQCo$E<<2fkTMBB2I0tEH z9fDeh8cGMp0_MSsfwQ}Mn)S_I z>}tpxf@W9>;)c`{HKYw5EkX@pgQM2d&^3B4NyV~eZKYV%td5#QEoPx70#U;$^aB)2 zn$=lB(eU@~isj7er&!Ibwi;rF1ig%cmLWnP#Y$#vs~}|fdx&Bgv-Z@aVliv9rAftN z);5-66|=@E7BOo}1r0-roir2-5nM|RVUID2<;&`#S-q@wwr26NcCa+G3sHBq6ib&i zT(NRl!xV%Id9~M2Ekqb;X^0ja+gl2fg^=Ae>y_2YRU}uQ)muTVz@0Uu3Nc$61)+jR ze+88SchQh21Przn1PUIVba(a`WNX$YYm}u(nmntkf-r$YHB<>ndfMpGlgA#K1AHPlXEM*Zb90lxnUd*QV|IyajWr@!c|4h7`cq;Kg;?~5q*!}OU#0iPD ziDY7VVjkZ5Cu8rw;fVp*`LBIq^F#&S_rHxkiQbN0#F>HjMmOPI|AOfB=-8+j9ky=Q zzX{REXmHdo>Jqiao_}Fv#lMKZAAddmZ2aN)o$(vuSH#c5j(Z}k_2XN1RvYr`bo>F0+t!b#y6?DW?^+&b(K zZV^_6CipJ+GQMHhx#XjbDqM{v7Ws?*s1* z?>X;b?@sS}?=tUP?-cJSFOQx6mf($kUvIoO(i?)E{d8a=c@ADs+H_dbAQFFJs z!CYa^H>a6nOwk->mYKO`x|wXonc-%D>1jHcElf35{l~D^-+TI1{j`2a-=Y7mFT?x% z$@)m0<@fp7dT+fa-scDFzPbzE=bPyW@AF@)kJVf1dG*K-@AIdrV{z_%y;`p3sTpdr z8l&)4#(DScaoT+)zt4Z_zT>{+KH=Wy-t1nDGw#oDk9CXgVeT^bKzCnvf;-Y3;`ZYm z|7zWY>pEXMA31O0ZT=DGZoJK3>74JJ<{ZOs^Gk7x{XRIuexx(l*~aPWv~ij_amTj5 z;64AI#kuu&*w^9Y$iLVp+eg@0{6s9W_p|Hl-Rzz19qeBAR(1=!%J!`9tWT`Bt(UAP ztoy86tZS@`t+Q2{w8HZ`>NIIZ%p0h68fsyAUfE$f&2r(jwsabL0l(NGIt|4j*J_=H zW>CD0PD3=vl{aa~h86Q-eQlG5aKKrH_p>xfN6f?fSsLO&;q8r1Lp~^@Mw5nskY~m+ zY3j!y(W8z@w-(<+EtN)328Eoa)9A;*)dv}&8$)Rha!s20F>v;PFLz|TvZGL9?#Ouf zMNOk4gG8g_Ce8gAFSZm#qJ9kS-r1zN8{@^gBy<|x7{qjyPIE8DI|NyBFUBi75f28v z7zB?&=IF%0)dha&!@xBOeiiIOZ!cZW1u83c*69R$?y5~Xl2Z0UcwC%aQH+qo@j8|c z#Iu7|X&;^*jt5P9l2IvAX~TX~by{Q^ku(?{N*xF%GU{kj z2Z$$zhf=d8D*D2y{l$slq11lj#PCpR7T*cOL#dhYL}Mv6@KB1oJ|2dLQqwph zhKEw<{Ls@tuQ^5CpO}Z?p%gkmboaw`ihDpFhKEw<0+C;XPN5G(uB=XRC&u z$_B$jDfELV_+XtvPl#Ndbc(w|9)^cf)EB~2!|+fFy&(!N=@j}ymS-?1ltPaPE({c< z&?O?j?R9D#mCK+nlNu|215|1Z{5(^kQ=>T$14XG(?7~1%Y9t4)GO1k=KW1p4D7A|u z?PpRuvnLG{rFIf028vQ6Bx*Y(AI`~_=+rRI5#6)Yj_idhp|?ckJKdy)NLmaOrMSmr zTI&>dnG6PsQs^_`&NNVzLa&LEWONGMCUWIfiaSmirA?vdMDg$@l0xT+oERudq5DL2 z@2gVWf5M<{3LPj4g%G8v3l%dEq7*t&@T7sF6!)VH28vSLkutMP3Oy-Gg4e|q31rM* zpeRKO>6tz{#R6$!JxmG$N%8R7mtuu97${0XA&~+DMJXsGQY_ag7D!W;RVfH0yjJKG z$s-Ed*`%P3R1^#kr67+;is7LY)DbQW52aWg4Gj;appHnqTBTaEqfVzt8Dj>+Ln)F* z&rH%OC?mWuJd|Q#G^ zPzth$;IcDSie%Blk7|ll(a`Wvid4}vhw2oIqQUS`ibc_2cqj!?qz8oIp%km4!Hb1S zK^3XS7#>PN7I8xi52c`raA9~T#iD31Jd}bc!f!#OQ>2M8gMp$HL=i3w6s4evlsN{9 zQlyHWnPO5biUu$3It5WgL<|(Apowsi8nGlA3>2kE5>ctQbP9@yPz)5Mpoo+q28xo9 zM0jG@AqhpKhqH}ILJ=t#@2g3Y#F)WAQIa$f!M#nABoV5}Js3 z7${0Y5-A=AijpLX$T4Y>tcixkM3StD26B>wCL&E=L?lV{bgZb8q=<06rjsOyaJ{9H zq=z03r%FN&;pn52q=pE4T_vZpSDi|d7J7P$PLdR2Q{+>15=uz1UeQTbLLKX&lTbqP zTWXS|gfWe#u9A>Kq&-9@Sqb$@l#-MX@w%EM31Li^t;G{!CDgHjDoIM{Y1Dy)5b?U1 zBUoB6KP;gc`!t3K^0bA~=mt z9&!k0th=j|5JZIItCWNu!qpNnNe&Twrlpdshq^*1p@#^afKbRG<#Qy813iT2V7OQg z^&kX84k(-ygt8!N`VO!lYE09ZBncui$B>~NfJlI%jhJukz9F`ggDYY z&@oOz9jOrbJxW3zkq>^4lB|x3I>t#-M`YA!k`PBqL`@ayNQuxfPC_2Z7aijy>7%En z=_JdeLdQ4>d8ANujFYU7iaN$g=p!XZ$2ds}i85t%k_A$YZe@}XNJ@l`anj~s{4OO) zA>oORaWcl`M8`M@iA0IfF|LO~QkLi#*Fz%ViH>nSBoZ!kjO$q;6*|WCP)PWpV_eS) zsiz;^kSd0baXl#{?ud?YJxipbc?yz9c%oxm4~;~1F*^Z;qs0vS{27}rA~DHI*!dPpQW@uO4E8mVIF7}rB15fvTdde%r4gF@7^Mk;iS>scce zI>z;+k+?TH#`O?Mq(OJM9wLc5PB8V*NXi`D;d-bfeP(M-J;@}JZ13Rwzu4*S(6Yog z*z@n>#CwTcq;# z(!_$qfr(j(sfoJ8gv4%%kr*Wyl<1%64cmaN60I>-&?Hfw@Don-9qa=>j^2&lgoVJf z7&Uk>x;wfxx<0x(x)fsvXGf<-$45s-r6_|Dgq6{fXkN5G&JL)H#=~A^FUxput{|sLb zUkINJAA&`}E#cq8D{#`lIpL`oe>gnM!>V9axFnn#&Ie) z!dloC1fdgr8+;yo0PBKRf@g!rg8PFzf*XTtf=h$*gENDZf}?|mAQP+(mIn)i1A^&6 zU9e{`Iv5cQ!v1f5DRwVs{VSg~s-wz`ell!q?_g^B%@DUc&hWkHAXdHgmnX3U&(Tn$yh*IK`lde$OEo-I#Cohqc0Fvpeh+ zhT$}Wex`@%Xj+@*80Cl?g)!h{^lSQg{e*r{-=%NXe}nbHh5BsRFC42IVZpFQ zuhfh696b}G9uxFfy|W&ox6{30$H>j)C zU$KMZ8R|rwdQehnb*MT>Ex^eK)6`x#`(TtBj?)je!FWg~)dnLXH7ZhCmAPNKAH&Mw zb@v7LN%tZ5Zub`V?>GzLBKI7ehH#vFxSMzD-Bs=qcP`FE*vFmdj&pZ$hq?n`_0Y}j z;I?vW-AWhdvO3>7pTqXyAI>Y-!SXTZe&-I1m|WvriZPQjos*oSodzf4tag?=3o&vs z-KoRa$!KSUGsxN2>FIRFnF(7sO>k-gQ)13r-T8C^$iIyx=&&v4Ud+M+=S;94R!*39^EWAT3A*b#~z$iaeDf|Y_5g5`pP z1j__V1xo~r1&ag=1q%f81@i=R1#<)k3Jws=7VIzBPcTa`Q!qm?T`)~BRj{vMAHm*& zDS|q|UV_PjNrH)j34-y0Jq3FRb{Fg>7$+Dj7$X=h7$q1f*j2ELU}wQjf)Rq@f?G2(Zf$>>$`)FhH=Kpub>S!8U?^g1&-2g5H8&f}Vn{1w91a1>FQ)1ziN4 z1)T&P1zQO^2-*wU3EB$U2wDra6tohw6toa*A=q5dT(Fs-R?tk)RM13FBd8Ws2`U8@ zf^tDZ5DDUfP!I@wfhRBmEl>hi;0SDiC5Q>i7-ioJz7u>a_(t%x;48tGf-eOB5_~TB zOz^4T6T!!Vj|3kIJ`lVwcu(-I;Gcqb1aAxeA$Uvhrr-_1>w?z=uL@ofyexQ0@S@-a z!SjOW1kVbd5j-t;O7JAXDSJZjxZp9tqk=~S4+|a=JSccTaKGR_!M%ce1a}MW65J`c zLvXv`Ho>ieTLd=?ZW7!mxIu8e;5xzI1%DGb zf{O$f3N8?wFE~$dE&-+-f^!6C3(gXpDL6xLy5Kayse)4kCksvzoG3U!aJ=9+!Lfp4 z1V;;w5*#TwLU6dCQLt9fASelnf`T9~$O*E7j36yY36g?(!5YC~u8qn5)qFjauZQsU zV7{*6>q@?^;Ola}9>mvWd|k@dC461X*F}6?$kzpYozK^Ke4WeJIea~kuLtmTHedJW z>wbKl#n+j9ox#`Xe4WPEseIj+ulw+IZ@y09YaL(r;_GC-PU7oCzE0rlc)D79@^ufs z?#|cU_&ScSWBEFUucP@oimxO2x+`CI;p@(P-HERw_&S`g!}z)*Ux)H_2ww;Dbr4?% z@^uHkZqL^NeBF+({rS2rU$N^w%G{5yefipluf6%&i?2QTx;0;W@U=T%yYaOvU%T+N zGhaLLwIg4*;%f)Kw&!a*zP5F2FV==Gt?9BQU0TtlC0$z3Wed7&PM79%*^Dl=bZJJH zrgUjSmm0cM)1`_om2|0~OF3N5(j}maPZy6am@e>O0)UI6i%Sp zx>&aDd4BkIY^{AP+5dkG3xL-XFC?DCoB!R3TM~ayT!FX#a}uW}j!PVlH~#v>DqaIH zE3r>vBA*2~6czz}cojgaL~WuH=K(sf3-~${ktm|gENdJ=u7qa`b>S2 zK3X^Ej9#sm>xHnNpRVgL<33uC(1UQoUQgXwx7AzdCa|M7ItEMnPt?2W4V<+16s+m* zQMan=)RpRD^%r%TI$j+CoBE_WSS`gY{C;X*HA(HJc7u()sMws4!e<*w&in5X~Lc@H!7FF8+RuKr%1m{Snh*SCw zfd&42XMbm^Guhc4^Y+7>9h`o!!|&*{cA7iYn7vo__n5!`$bQFu&3+#C_z&85!6N@} z_T~14_SyC+_Oaos;d9~R;RE5FIF0ez@UrlN@GPvnI0jZ4+3+yfX)Fp4gr&xma6D`^ zb_xf>TB8@%U$hHbgiXWp&2X9!_U`DR>&^Gu|8Ah7%gE3N8uG4NebE2#ySj zK?>(IE(_)d`v+5l$ykpu5;hz=1pQ#e(J^R^^BSvzc%ZN@;|rYG_>TXY|2$5Xc+kJg zzuEsA>^Uy<&-PEj*^P~U4yQM+^cUm&#+m-!{se!lzcVa5w!;qEUH$fcOPu3af%O_T zPICOrd*6EtYc`(o9`)|Sx|IW>=@^OHGa4O@hz3R5VjQY-)D~-3nnVeVLdCFp<&*fk z@i#CA^%SgI?up+TzYZf%7voIJ)8fa+kHGj-5>_rtv4&+oj6O|@?-t(`t5~+j*i-lT zR#?ZfS-dJ9#$8yv{44x0d>cD*;>XvwxLe>`+%51e?iP3!cMCj=y9J)b-2%_zZh>cU zx4^TwTi{vTE$}Sv7I+qS3p|Uv1)jy-0?*=ZfoE~Iz_Ykp;91-)@GR~YcougHJd3*p zp2gh)&*E-@XK}Z{gMkK$>sj0_@GR~YcougHJd3*pp2gh)&*E-@XK}Z{v$$K}S==q~ zEbbO~7IzCgi@OD$#oYqW;%^+%51d?iP3!cMCj=y9J)b-2%_zZh>cU zx4^TwTi{vTE$}Sv7I+qS3p|Uv1)jy-0?*=ZfoE~Iz_Ykp;91-)@GR~YcougHJnJy2 z`)a|VfI8cUCJQDBCJH79#tZf&7;6u~?t@3(xFhVd~FifzcV5ne-V6b42V4z?J!S;dyg6#zT1=|X?5%d%E74#AG z7W5MI6l^W%A?PmXCg>{YBIqpWBjUeHd^R?tS!TCk;{m7t}dg=cAW`d@ICW0D4wV+B+DX0*X3lf4z5Eq1kK;R2Jfe~nd61W0KU<)ikOi;#%eJ}V< z@U7q*!PkPX1YZii5d2H{;*xQ1C2;LIB zDR@Khy5KdztAbYqFAH80yeN1<@VwwT!Lx+G<|Y-`+@u1Vn^a(PlL~BZQi07)DzLdp z1vWRSz~&|u*xaN7o10W%bCU{eZc>5GO)9XtNd-1HsletY71-RQ0-KvuU~`iSY;IE6 z`CdxKO)9XtNd-1HsletY71-RQ0-KvuU~`iSY;ID4%}pw>xk&{!H>tqpCKcG+qyn3p zRA6(H3T$ptfz3@Su(?SEHaDrj<|Y-`+@u1Vn^a(PlL~BZQaEdiitAh4ql`4%@R-{L0aTim34 zi<^{hag*{bZc@I*P0F{pN%?_zuu(x1}piZ!tV6tG6V4`4xV7y>Y!5)I$1-l8x3C0S>2u2G=2}TNb73?C| zS+J8}gkZQ}m|#c2P{9zvV8I~4K*0`z?F9n_+X?y$wiRq6=qKna=p*PY=q2bW*jms- z(4C-T+_L_h!@`reLLSKFg3AP#3jQj%L~ya-BEf}%3k2s2&J&y~_>15i!P$iWnZqLc z|FPCZWr@$({{IQg`QL<<|K}%8!@BRo{c{gzXR__ zm*VZ{bHEU~Div7!dRdwhCI(dj6oy{~UAcuVMwj1O9FP-~CJdbFl*8C_j%C{Y(4!+8b3Vtcl|FR$kxYHw@zu-n_4+m%=Y@V)i9 z^`7;b^{n-Xb(eLcbrl*Y{;3>U_;~RtDn|xBUVNd-!oCNN);bI89?Oek*=Uxmd%XB) zl_ldIFTO};VcSDtC#o!Ld*D^4vSiug#V6@38TKHoq_VK%hIy2>4D#3m4!tQ9JM+Ndmf6P z(^<0TLAFJmWpkc*>@}4oa~?0gRAph!14kd7g)I-o>Y=l+h7N7le8tOy9CQvkL}q*`37on$C_8*J_;|F7faI4--Fpz&nax-ek$<5#{ZRdko=w zEH&A|>_^sc*+G0eSi@xpN<>)0Wq07zu!hTSFP^Z5%MOr4k0R=J;tOlIY=6!Z?Ppug z2-a}fZ6p-daM^z1gf(2YuOx>xT(%FKs908Kdvl`Ec!Iqo=28UrWY0x-z*}=fYAHR$ z)!AgbOT;dfI@^sSx{l6vWfv^uvRyd1?8H!KJF_P&+18T2q*QiGgnQvsoo&StVJ(_%DWPkP z$+i$D%;BD3vesm)B_FH_$yRYp7?x%$*##@?Yz4cp9x+?aE-XmQCgAeIt~wh@E@&=s$r`Jc zvmwXBLXd1ASz}pd*5@RPP1X~?-Y6K1dg${!1M9ii1sm+F;$YZdo2)A_vG^nFh!cxH zvaor?m!~I^TapOhcnBieDu3f4iPUWSI66b37z?ouBm-513+q5KP(_M)vQZh<#c-m| zur7vJ29hCNjD@gc%|ICGiDK}Zl`+IJkPInfEQASnhNKa>ZzhGKjUaRR#iyjF#vO z+B_tVAN5sPtk_^csN?5Nm zq>ixwOGq-1N2FM;GZ04#M4N#)B5+ZlGSEf@uFx5hMijZT$*?j8G3ZMM%7}O{MbD5h z#sVxR$v_$DZYQFxLK=~HwaP#k;i%IY$ReU)F-Zoh2(L*x!=e~qF-e9+F(@n6>I{ow zFdYvAqKFjOOCiIe7+^6;hC~r%>8dlViNQ!Dh9=UZ!gAsai6ZK8rpk~edckCqfh1C) zN?K(|6TRS2oq;4GXDlYkup$N!vJ5L?K#NH-tcU^G^=6=mly`R&2a_MP1P(<8tipj7Z2DES_!+ID%vNF&^B!*;VAct^4vNDiE zs=!-1!*Up4;YbE@NHxI1kqq<@5wUP2!*Up4;Yfz%FrbAa8J5EU3r8}LLwZiVO$KsE zsn0+#^pHF|nhf-iJpY0$SrG#)9LYctk@*ai0)j}TD3}ZjVn7Q=G9-wx01HPltcU?E z9LYctQA21F1QDU6L=Z%{YVk-}4+FBO&yXG>$E3+X4(ZldIFhm0lLQEQh%|kb%0LdW zD0+%cLkum?M`tSyF(lV(I!$5-*IO#hTIerTX=owh_t9xcA%*qOX_i7CYe~|OLIl?7 zG?Wm5=yjz@2@&lTlO`dI`Lw(v%}VHF4M`eGNS^3_r6Gk#j76ys!dT458j>^%p^r5r zX$T?W(HfF8OQ8>mOOq6OekYw~CG_!3(@;XXT|bj1B}57=97&TD#(eaA($GSJ zQs~pdku;=`Vq)P)8e&Mv`|32rkX#v)h8R*X7LKH+aq?-12sK177LKGz4H1lmBWcJX zav$yLG}I6-d|T5HL%6VTBn>U3h*&t1W;OJ&a3l>iq}%k;X~-cWV&O;{a)@eS#VEv( zQefdon&r@+iVPu#h=*@bn$!@%SU8dlkVDE5OGwhtLwMqAlV&;ev4kWIIi$N_2}v4)h~S|Jh8|K4 zw$W+Q! z-$AEI6l4BG+y|-%7aDvTst6aBkfb4slo$;@4OOIKtT1U-MUR${q@jwm$P!CP($Gb6 z_CrCSjI>4*OGwg?Msng;D-Cg^2~ZztCwQy0(NW9Hlib8x=hubpGJ$!_EN8!PbRO)`Id57*usz~t3lD@-9YUrJtU5O2E9$NJYTY;c!w*x)YVu)$rzVS~HKVS~HKVS~E} z8-?RZL=GF=MGhO>MGhO>MGhO>Mc5LYqp-nUcF z1#JYa1zQSQ30ewT2(}PxE@&>;Oi(LmCTJ>XBB&8m3#tT_f(k*oAR&kZaX}~u1iru% z7=acjfh%wXw!k7_PD@b6u)i04C-_$Ijo@p+SAs7EUkLss_+0Rr;8VdTf{z6s2|g5j zAb4N!p5R@*hw%#FkCQ9u%lq8V2EI_V31&-UoO(=J`NtHX?q{q-mn^d`Ty42`2!Ks2%2npw8!AXJ> z1t$oO7aS)zR&b2qXu(l}BLznY4i_{E)(RQ~B|%Y85ab0pK~|6vqy;HLXmeFUo2wGq zT$Rw~s)ROICA7IJq0LnZZLUgab5%l{s}kB=mC)v@gf>?tw7Dvw%~c6)u1aWgRYIGq z653pq(B`UyHdiIIxhkQ}RS9jbN@#OcLYu1++FX^;=BkADx~e3lM)iU1&0a_ z5gaU7C0Hp~Ay_UrNU%(>RIo&_Sg=U2kPz4l1oH*+1ak#*1P2NZ5X`1^7!}Uv^jC%R znc!2wCxVX!9|=Abd?0vV@SfmZ!9NM*&O3s)1^*DdC3sWthTwI? zhv0U>ZGu|`w+L<)+$6X$ZdqlCvKPw|hsWld`%N#mxiwi$bT2AmC#fcGgX?2W_(1DwHWolG$CcGLS3~>P?YVg7qQ!N~rp{Y5zi!9* z)0fW0gwNu-v5V&Kw`l6zxwGf(S2tqnoT-h&0o>2$(jhK5!EMtzhcp$jrjlb1zP^e4r_1-L|J{+ z?^mE7p4cxI37_D^H7)$m7{+|~AXBzZRz1FYPs#v%vjyq1+fOp(=_WUJN2T#Xr z#^OEZA2@R!zJtqV&zQOB-yhP-XI@(qCeR*(4S3U^{oaZujGj7oW*uFAzAdg?)Nzd; zpg8*XDbBBcS66nsdQIg19^xU-X6XE-^On@{^%tHF3e?e{K*Kin)4}ZalBJ7D#zsw@ zJ#Wd(c{Cxm$83CdKlS>Bvg$L|bk!*9sQ*e?f3^bR`OD?4j!@o>{sT60=2UzEr_GE#iX#@Usqj&(nvMM!*SAffPx+UB!&V%;8i%K$O#ksO#!qz+cl(*&`X7~P z{Xc%;VeL70xeWoGzOkRx`jh$6&)9QraBl3~HM?)XpQE2Xq;)?QxKlj@djsC;XCMCm zO|XM=%Np@@+1SNc?;r*i|A=2w0?7l&wNvp3+qe)a=6kbb+n&Y3^`z-|XD zovAVwRz5bJ-}e^HFqY{|cc8@nt&`&05;e+#3Avh(m8 z_+KgG&lda_egoHF>#>d8o2GZY|9eLVV*@yDvgO8pU_WYL>;LhSUlzREE?P5vW0zbU4U{cLfgI~yUkuU zb9NbWM2^)OMrK%&u#&Gp8<^zJJ}X&0eE}fxh32H6u2liv7&*AnpIR8}0x1 zFP#1Ndg9r{!-+d_;@@RB?eEleI{+S(n1dYvCnm-uh9$O3Y@O(UQ~jzECi)&b{lAAj z0H0g82jCUhHmtq7k>?B^*tEB z9q07PE`UeGGx1gNh1eZ^N__YD&hZ`Mz2hC@EpQ@V5RYL`^!LKo!e?+6-<{$0;pO3Z zIEU}(uz>yLmxXh}X*hvzG|u1KHtZg@#o2p_(8ZqeALHD;7jWv{J;6=El{j(lG@Q3r zz-fC+an|0xIB9QJoU_+2=z{&@n_>5O+yBykALr{mhtu`$z}b42VGqDlum@nyKNP3x z9f&;u$MYV5+pgOKu-sSP*WSlCN$(|`qj#@&GfpzN$UAf09)K%xhQTba&f5)p01ote zV-LVqI5#iy9P^d=5NGDSU>?JXc{iJ@&Bf*{oR-&UGUi~j*c@Q?#fi})%@CZD*Uhvw zo0$q@a6;Z^I3MpN{kXmd=M!AXy8s@e3pklziJqvjRW#5u<~**U_= z;!J@>I8k69oMpGGGsM}(>E^U?YMpXN*kZwFF=ZJ>04w*#rb?oS2U4kT8A-Jc4yABb16$`p7zkP13BynyXM zD93)LfbBq#5AFF>;Qc@tS)rqz|l3TuoVZc(1i|?U1w8h&)LPgC|zjB@vxsv zp)I?x`%|F}2V=KJRcOtLSF6I7?5NX)RvZnxKNVWC*CbtN!Cu(?sj!8lEN-R?o3kf& ze=0PW`}Wd>&BWE!6lysl?etV=#-7;esnC=&oNNkBIJB%3s6q|<9jXh}oF8_2Dpawn zm1_!>5)V5)6)MDuot_Hi?4+HZ3JH#iEo%x9yRhd|0fyxG7+Siz5VC6~K9B$|ucAU1 zeD=cTPX$jh#O6;0!=Y15L5m+Ye<~=BI2gIO?84?x1&3XO;AbNun$cUjV6h)Ie=5Wz zF*biHl(8o^f6A}sh}irof2agw^QZhF9E{DM@&`+BZJ{*=MUo4*!(HKjQz0rQ+_E&q|Kl5OE?&tKjjxoYHa?LUj$FDVxrD3$@jM$j&S6h%{**tE)AU8b4MJ%Tcs`C3&aQRSW z^81PB*(k*2(@>pJWB%UP8V>xZ`m1lV@?_jGu$)i`kOyyY} z%U7v9)Db>QbROD>2i7std1xbC1C`1{8WDJ~$+Iw)mmP)=nuIY{-Wu7mGM3wLK^f^2 z$ml$jkz9F|hcqJXc$J4T!m(86Nf&XNk)`q^j9&RHorf;MYZ|g;SuBUtO{`p!TS>GRK_)srS7NmAuW61~I}m4_n2 z(c0um5OI#wu_ys4qL*-*m^=w0JdcJa6cL{EHDXCjILF|TvLq(zOdgU*5s!i&X`+{y zr1FqNI3}7r3u3})iUN`#B9~Ki9(qWw<5ZsX&`Y4qEQg7KC^O`cvTFxV=pn^BUFRW) zgDjl(-Jx2nZrMt8r&2B84BX@=!$FudT^L5Gk}R z9xD_v7EAQ?o~sP(%a|v2>0FF)`XQITA#q-bbq(6cITdVsfO1 zNOGdlIS3+>j6p=wLqx1WY8J!W4DxTfeFX`vUPdE`h6;W}OC zND1LOOy?kk^8ig3dt!$#s&>K?2Ejyvnf#Mr}9I{kDG zdPuI`I>&+-)rL9;K_tIzOb&ubNpfi3q=;U$Oy?ko6xvkfSP`QoI>(9_bwpWM5u zCdY~xIqi^?6)|e9b5KM|+C%4{h~(<7bF7FFPUFatB6`tyor54!V71DTAbQbKlY<_j zAWm!C0)j}PO>~Y0F>;WU1ksCTnH=dM;8Tr7yu5MSj;5WQ%*%0Um|7^iYj zLpTVdX}vR?t+9e* zonhFzB}4128T$945?(Y^x8ACue=i&QxphP98592~$^X838*)#+bcY&jAi4V{-h$VA zMn7%1z53zv-t=4Uuhrql4Yt?1?bR^zuxN?2$}X)(&Ym}u8)=_y|J&O~u2++~U$uVj z&mYYO+7Kw+wi+#U)E~K}ZnFCT{^n2g#|`yYm9_UDsGV-e9R#)n%0G4+-E?;a{EZ*ykK5?4 zZw0vRCbnNRt-|@)b$I4`8I4;qUs89TR z_J4F@Xkwd0w?x~-W{E_?iN50V|DK5+jBbnm7X39kJ328sJjz6?a9;W>oR~xOLb*+&rudb?^=5{oh(Q?|(B+k-vcF{qsEU ze;`heACFxQhhW~nYtS~R4HALtf9-$B^Zt+ccltN@SNP}Q?7yS^0?z*X_q_i|oDtv8 z@8Y+{`S6kNcwc%ScyD^od5?H^c{h4jc;|bkdB=Jsuijhk>m9>_3_J@8fm$w)C2L zanCkinh(qy<~j3-x!c@mt~3{z)6B7^Wa`Zdv%t(Wdzo=&xY^$HHl59uriqCgM}MV1 zYwTr^_03_-Kwrt z7pt??iRy5bQLEHKwV#@zc2_&AfvS({tXioiDpZ#HrTf17n){6Vkb9?loqL)47xyIh za5v+wau>S$xl`QT+@0MW+}>_Sw}o5%!_5CnnEAioxee$4UE-YOoah|xq@9({0%w-9 zmowHG=Ja>EJMEq3PKBfGZ|slkw=nPjDCYfdu&=Psw@ z+t}UgHg>HY*^c#<^`Z5q^*ql0yW6_Kx&n=p{^@~@h4&Z1`8m(UfM0=UUH{rn6IRhEh!9aGXF>nkwN(;+FgJ zEvJ~$KH`T4SlXK-q5+nsu&WdN>ez*IXG(iX#8VMGnLW|iN|VI%7*uhhI5GQNnjlUz zr_y+i+5zeJ6i-YTm-c|CS2IzUcIQyElG1MMLMthalXyAgGgh2uC%qkI#rj3it7wh8Uh!xJ{gr7ES^xfK~(H&1;2sfceE<)z(s9qO500{qwr}C;CQ1E zZ##C4F{adCf{!%1w5=pQMwhnX;0~@X^%K90F7*{xUYGiC=ny=w-r|=vrCxBMT*Vqw z>M2gl%apbjCr&6V^$;iKR!ZIB#KS9?QaAC;DOKu!Yt8}R|-)5m!rB3X% zM3*|U*T6`Xwqmb?O{s%qL0`D`?AO|q+OeOi(WcZ^oK3VYwc*4zBDUs;<5h|D(W_o+ zN{~ks-)UW?OVCF=OiZwsSRSiq=@R4-UYKAnK^>{+^{Pbb=v6OQB@#!kdW9*GHsVug zj$5%fRv&^qAdU!Ktx6<~UUi)+K^ft|*9^Ky_iTfELKty_m2q8yFv2w*&5m>t*)>J| zA&f{eS(PA*a2%>jtcul`VJ|@yk)RbG2~-h*2bmHyky37kf^C; zwJMSzdeswk5qgNw7LhJO58or|u9juDIu8X9D@GI&f$sk;>s3NJLSJg)sA%f)9Ll;Q};aX~n z5J4+eMTd(Op@N8ah%S-_#;S0*SP>#f@w%EKL=f?CxR@$J1`)55Er+$QoER1X;2MR?#tIMb^No(Rk3%K-|%VA0!Yi95YsA z1+1cD#)?otx=k-tgaV>klT8u&N5z477g+(TaHLp~6|f32UStKVq9etMtbkQ?q*##@ zFjfWotRhQb6$}fDkU;oB+KVKCc*8_?x(F2{udFJv3RX@vMW`U|OQtkMmchyist6fG z7K=?0B1nPsNLU6dsXtYO4B}p}eJMf(ksp0?pn~LT)J4c3xpKNlItbTVRU{eoD!b|; zRFJ&#x(FF0*WtRzGFXWdPm7R2^2_QXbdX#nQ)D5m#PMmm2q7d-eAys`#~5;1$hmsPSd))h{uB>CbL z;sSJ%;+7&^fKVcXR`6t@tSnm#8&U`*MeQEw0;Ce*mADn860Vjg9h4HT3gii;q>PS) z^(Ul~(%>NB0&8XEV8n!0A|@GTLMq`Jg!_mJ^7-gI7ao^~E_?!^em_0Clo13A|@-8sQI(kVJAtbkbN%*Pstsm^3) zcV{Fv zOJ&>I9+g>;8ejWf|CU&2~HH8AUIxdoZwi& zF@mE7M+uG;93ePd&?s0dXb_YHML|K37vuz4K}L`kqy$MpyGKK@UQ; z;;K|Du1dAys#Ih8g~PZi)rzZ9t+*=HSd__OT$O6YRjF27m1@ORsa9N-YE0p9Os+~b zx>@`eSEX8URjRSRlRddA)rzZ9t+*=HimOtMX&{cmRjF27m1@ORsa9N-YOE3EDBT6! z1YHGP1f2z)1RVui2|5Vc3)%_V3fc%-3$_%r60{Vw5NsjXT+m#wnV?qCOwd%&L{KBB z7E}=`T&_xm%T=jxxhfSdSEa(`s#LgKl?s=uQsHt{DqOBgh09f`aJecKE?1?(<*HP; zT$Ku!t5V@|RVrMrN`=c+sc^X}6)sn$!sV(|xLlPAm#b3Ya#bo^u1bZ=RjF{fDitnQ zrNUiTl}f2mg`ixJ5JZBwAQS`wU*HLhKns+>6*vN0UpXe{7XDP7kno8RPc%5W5Gv)4+S3x-WR+lcvtXG!k?!B;1S#*PvUmLZGu|` zw+L<)`~Nj%@$LK-`bu|mYYn}9{Q2+CC-6HxfpoLxFp}!C=^66<$XIjYg1VpE52=5z zzMHBQ-)|}Y|HC}0uUI_)yb0fb|D@F4QX~05HkAEd&1Ptt-T$CX^N(Q#{R>~LAGge3 zHGuB3X)P`Jg$ixZ#Uw*&H_d~mfAkIgVTZ#1Ig$IPn_>M?1oSsm=Ese;*B?nve^dQ7 zthf$r_6Jzg_uHP!A46(?Q(b=ChW|*y`ert?tPRx175jhe|0nkUPbTh5+>*E^aY^E=#EFT+6Y0dN#Dc`E zL|tNBVnkvE80`LcSaeV{H<}hr zj7CL6qHUw@QQN3CDvuPe0eA~*03M0ojWqyQ#4m`S9zQN#im!<;i_eKqjZch^j_(-X zHr_qnHr_m55!d0j;V0qS;mhF@;eFvP;WgpKnD0FyYz))k%5XtAE36C0g(Jf4G0WRA zY#COEepnWK7Q7R@96TA^7tk7j3xhL)V}pjEK3E>i4WpVGY0m{yzSm{x1F?zpvlf-_mdDhrZ=~;l1a* z<~`#*=-uXB>s{iVok!@cdit-TK37G9O-neWY~=56zmc>*Ua z-hzGqE;Of`V@$!UHp|RhGXwVjyP2KL4yKpsXj+(RzR789;=7z0lFve`&W&9|Nd?L|D?JP`~F?6E>dTy<5eRjkyok(YL==~ z<1pYn00X@pVg28ft^dDp--Gr4v+l$0UG5F;74CWNsqQgu(LKyP$ers>b0@l^+#&9^ zZg;n>TZ=hx<$U9OjoO)-uGuN4cIq$K~2xow^wX>De z0<+z|Q)Yi|ziYo@KV?5)--cQ4zuM>6C)tPF8T(*+p}n6y#opcC*&b;3wL9Be+D+{c zqj#TM?^>@~Pg(a{w^-L;bINu9Oe350)W&*Sx{*wJyxOueOe0(L)WR~%G{U0Ciq(?Q zOe350)WT>+H^QVR7OU-vM6l>VqSz~@5f(j&Syr%3BTRZIQ6Hpdo1R*jf9giq^dJ$8 zv>Mr@rxu1bjWFqT z&x6of+=R_}YRhs;Hz~c46nm#vM6um1!I*3EDckaR`Sl40PjQxko?KIEaI355~rU;yexyY={5D-kXQX zRh4VssjjNM)~;OxVd(DabR}Kg)k7sDKxW1;&xAQ7ArTTtATlRuAY@`p$WYZa&&-pc z0)i+aAS!~Og5ZQBASjMFE6(rzJa_cS=Q(iR^KxCr^T8kfmTTJksor(h%3AkYn~nMd z&d9#n(MmJ2kG7uWcSiQsEX2N-c7uHjBYUzfPF@_DsinPUWQI2ICVV*T5;HpOk!ybw>nXifnNM= zchw7~kU2p!#rrlgUNZx@?X+Xn!;Y9kv2_XFVTpPt+AJA zWE3*p&V@F+o_VmnX4h#&xO}r~H3es1c8#X6mngd$72QtkCCXl=dDu&oUB$-OOO(A- zGjZf%_7bg#BNww5vlzRIvcp=8T}9cIES_q!FgnV|h+RclI34A~OWW*4%!CUzD^5pb zPBK}jBEHqwRg_gx?8Ih-tcqeM48k_6qS)!gJ(Gnfq9!&NWub}EJ2n_)A&LlguE|0Z zQ3?UeLK2a}){(3#VyD=Kvrt3{@hY2zB1&UyFv^M~;x5LUtSF+dbGmV|kVK!`vCzqi zBDx*DP8NcQ!~!P^Jw#%jlNC91JLcM~s$qvO6|`AVLtlq)25t{>h@`ktv#N(3qpHXi zJw$~okQ6~gvLCl7iiqTvHYW>7M6YR+g(CWV9WcXYp@?m62P~>tQAA&dY^2DlBz8F1 zNRfpkq8uukRY~lCH9reUl)UvOtCHA(!?v=JM9IS+SS7IorsymrQLa24SB5C!%ELCR zlGrf{+n=(KL=*>laTh9z9XJIt3sICd5Q8jKQMw$lS(U{OaS>-BiztV2-eyG?QFR@< zhcKf1#U=|`L|`z_W>pnC#3r1DDoVxOkqcdv=0*HzAdKi9$Ae{|jA%3)fvYlh_=Zso zWt6MGYO;_mBtR=t~;76q!Dd`c+en?NWo{Dg)~a%jj+i=9FYl!a~9f&6fDSD zkw(PZhj>LBeI3|pl~r-<7`0`p+Jd{Yo5#1U1oAH-%=9XrIPn}s?eS8Tdj$fI0p ztK(!LkcfSe$*Med;5(m%JW46H;$%f2k;HdCs|wlS+s!puC?u}GBd!mHls;$SP9c#J z=d~sajYKhoAS)W_>llqvh$K=Ff~<;U2b{eo3z3v2S(}AONFW?B z5S8?Gh!Utwb{vC0n#yFyM3WVnL@#(^pptU8*P|X}5-kowtWZhmdM27cCK2ljn-!Hr z9!5G@kxBd=Z!%d`$qvy0sHF6RF;7-?vO~r^S?HuR!k8zkO4)%iPZmlk7k}AiRVh1U z%#&56?7*1EWTBL}4-9m&DwG`<=wu<3(mfo-StzA6&zY<$WrxUvC?)bTCJUjI)JBtm zQlcA-Z!!={X^inr21+T#YfJ`8DJg73gi@lSY(#`o%I#vLlM$&z@m7<8Qp%3S^(LcA z*^X~!MwAkH>r6(4vK`}_j0$DDbPb`z&PEJsGOCm981rOQC)+XRaWc?J?4O)$GLT8x zAo;w>Kqk=wL!OMtBzhh;8K@-kFyzTVBqeW_lYvO0>1dmQM9Ln`eNhULl+u|t1Cf+W zoHm_-N}@5wJQ;{2QW*1OAd+aj+Ga!|Q4eFD3^Y<2&#)P2r0mheNGAi8lq5zv8R(=` z#YiWkO4+{BWJD=_?HK7~AeHD55sOeFk{fMCb+TQ~n9e{aQQB)Ws*>%_E}qS(O13-g zp2$q#1RcJ z{>g|oy6y992GS_uV*HbVHlh^cpA4i?J`Rk3GOCU382@BM8*vL$YzESZVy6Rfh&Cc~ zqRpr@w#!f`BhrZbzuCz^8F88UHlw=OJ_1Ll!eCi|umk zZ$@RYU1Tw%ve+&|p^VC6JBC6T$Re7L^S|r=5B&oF`hO+#E&Ticnb4D=$3hZ-T^3pqIybZ=^q$Zuq2oeF;6#AELsLT&Lj$34I2B-YC=~L$e{z50 zzV5!}zJz&!=iSe}>;He(|NsBy|BqYsd&RB#z2a8=UU92_ueepeSKO-KD{j^A6}Rg5 zid*%2#jX0i;#U1$ajSkWYzGqGPu!~CD{j^A6}Rg5id*%2#jX0i;#U1$ajSl>xK+Pb z+^F9xZq)A;H|qC_8})m|jrzUfM*UuKqkgZrQNLH*sL?BK)aVsAYV?X5HG0L38olC1 zjb3r1Mz6S0qgULh(JOA$=oL3=^okobdc}AG;BdSD&C=(^3NEC=Xkt0TkERi9$5?hGP z#3tfeVk5DExQ4izxQe)vxPrKxSWm1Y))H%o)x>4QD&kV&65?WFm{>`yAeIvs5f>5{ z5a$!;5$6);5bq_H5oZ%;5le|B#F@ky#9~2*Swx&poJPEdSV$}&P9^3O^N6{`Da0J& zWa1>^MB)VEc;YzXSYkGD3~@AZ6mcYR1aUZV7;z|Z2yrlR5OE-J0I@$Yi`b9Ym)M8c zo7juklbA`&Af^-3h^fRBVluG@u{*IFF^QN+>`F`^#uI5`h!`XWh<+kP^bx&8lIS7E z5o3u2(M^mYx`;T@NpukH#4g0n#7@MH#Asp%B1S}s2oWYcB1E`^B@E#ZK_Wo-i8jJV zj8b4CUmjY#$4BvJ;!ngMi9Zm(7qmNX5WgdSOZ2MBVHw5A-+qzOuR(ANPLI*Ht{Xuo5VMWuM;m2Un9Ose1-Tj@g?GU z;yL1r#IwXR#21Lq6Q3iVCY~ZbOFT(DL41aIocJ{HDdLmFW5g!}aigKcjfN688cN(~ zD4j+_=`!GzrPF9Aokm0HG#W~$(NH>#hSF&?luo0ebQ%q% z(`YE2MnmZ|8cL_pP&$o<(rGl5PNSi88V#k>XegaVL+Lb+N<^LJ5#nLuHaLCu&5Ms1RkML==evktcG*2$3Z+#8zSpv6e#Lc$v`vzuSLtIT< zMO-O(ccUvlf(85}P9^3O^N6{`Da0J&Wa1>^MB)VEc;Yw#HoD6C|1oWM$@~9)68o;6 z|Mz(8q1e5#+heU*KDIHoF18}JEOuJ#wdiM|~DYV>o_ zPewly{b2N#XdNd2Uh@wp03H_I7w`TXjCSJ$KsWN2$gd(lh^?ahBT=$rr6hljDx zdl7bdAB{cUGr|+Yz2VMqH0<|&@BPgCp7%}fIqwPY5$`_leK-NI>}~O`@GkMr{rd@k zdwP?+es7GogXe_)6#8Z8wa~Xi&xfAE>imUvQswKjS{+-s9fxw%mfd(Ov7VbeFlOxpUm3-Gkhj?nJj& zPXOeb|6a4-!U=#++DGjD_D*}fEx`eBIUE4z+QoLRJ;okn_r!bu`Yircr|19u%)Dy8 zZk{oZn}^Ij=2p`%Bjy@&8P@;LH1o`CbCB87Ofo6cWnw1a{K5H|^Q!Z8=UL}*NZ8%b zjJlJ>-to(@S^G@9^=~$|lb*LErlKi{KCb;jMq~58fQC1+&4cgR6oU1kVi4 z4<3uR{_P#yBRCKo6C91T|33$Q75D+x{=ckm{rf1^{%;L5vFrWXzNZ=HFKT3p#n%Ez@8HnY?qm*O`LO-F0Ictbn;YpRXI!USfdVG*P>jXFg3jM{ zV@;qS^LOY7i-QGB;NjW}Z9%5*kcY*=0_N|~1WN)1Oy41eC4quW-}$<+Bv6p~JGUE) zg9Vws^L1l!uz>kHX^h3ef==LdV{xz`6L@YnCYK93f7dNX4i+$fhc;LoEMWRhil^EF zrthRR76%Kus?m)_fdW=FBom8+1uSbw%}J)9%NpHS94yGP2JT|BEp%%|IdZTtMmxuf zV4;hxu_9QABh&4kYYLrOiYfm>ho-P1SZHTGtOyo%VUJhY!p_XZieO3QBBMTShMCj1y2);okB5O6iGyM zlg(ekO#Ef?7i%V#WAekAiFHepU&+i7lV717;VH~7XI|FHUxYk&%tVvFkXbpCzd)^mtU&I za*|el3H!O$*GFelhbl+Pp4ijFC0mye?*pku}`BE@q4wbsatwEM~~3 zTSYFGGvto?aqA1%!CI3)m8tbMKcB_ZQFERqv65=?bM>NFKFy!P@&R0G4$HApnm?Jj zIC?36l2*k6Y5qiJVu3V&0+U!E%^%NJSRlnLm)3Sg*|M;>MWK=n9J)^7-Mcp}Z__;Pb;eWM0-cd}AOrc`R@sbqs2%MvlQ+ zqRm4irRG#5p^}os8etwXDM_pm=An~lh0~$(DwAVmIWP~IL?)I4^Qw|#upF3Il^g@# zlg&dV(Oeey@{mb9-dKUlt4xl8c`2_lIYyTB@{q|kw+jn-dC^Iv)|otHQd0PfLnbAK z#wwFtSklX@Om_KJnLK0?r8pxruQJ&s=B2#KWEWQL@+y;EShdSTCVjpxto`MolG5QU zn-`Vzb;%21^D2{Fh}+3SCVg(#WRr(Vq6yaO@(@X+uvV8Bk#xIO+q`Hb+G4FPFCvK! zXV^S65}C4AmsgSOlC`=#L{h3^tu8Mz>2|F&c~!|StkvbAlE^}Ms*zn-tIMlKcF9^@ z9vX?#UXxde?82&C9ug@R!Kz#yA}P^tFnOq?q&7KumC3F-HZL-XdRUdqLnkGPRk=Kr zQf_v-lUJ$i8n$_nN|a(%E-zZ?>ylNuJj4<)V^uB>u|%e<%H<)K$i%8#9&(8rTWa&F zmR+(cmshpy!m3~IKdj2-L@V8{OHB?^ zDTN!IoJghHwaVl~DbdLUn-ihLtzcCy2c<+)tjgselt^J!E~i4-C985d2qhY?cXFbW zZr1{ngG{0tR^@UklU?&{PGl0{U{x-sI@yI)xt!=EZWOC>ITgw-tjgt7D7)ZF%85|o zW+vJkbW&~xOK~|-O5F6#PELfbz!)S4nM4X>kQ`)E z>R}9$6P-j7W00H*WtWUWau7;X#d>oNI*AmX@El|kDTsd#Dv1={4V!~V;wqy}4jPFp zj74&)kzFzt$w4Dgy3ppJka7`>MRJfxRK%}R4ho4B1R@84L<(b(9Q09Qdd=jZkI2JV zB&YJ&C1a5s*HsUTe+nh>cmyAVnkVX_^ERs`Y>=JiUPL$E@nrm_p zMwH?wFQ>ZLg|SFZb+Jp_NjcF)^mvucK^EoG7>nefi*o7lCI?+aYq$<_DvNRaSeYDT z5uVJ8kg2K|m!GX1R8dTx_}R*-EXL($D+gH=lPIi5Iq0G!VLi&JFvi7tl!GwB5SlhQ z$Raw02INE*-FUCbi7LX!xz^-V6yq4bgVjN%hoQh%`9-|yY5iQ^`%84lA zYVa84po-{k*ydCeTIqnyfOTs%fOmBqMt zjB=1gsS1x#PK42oFE%;V#W;RKbI?U8#ZPEXl`$?Jqns!sJ|X;s=0qBCpBqgM%80Au z$26zH7#ELG4#FsbziM+(M(GJZt2vQIUmQQHIcOtN_*u=VHpbyBa&oGTaeT8?8{-(9 z@KqjBg^c5?JfaF2htp^T3W*3Nni1%u+`%S00)dokU>rK45*dfnXao`| zUBhWK0+B?M74NS9zq|f#-fPY<3(U!wQ#j1*k6DGuW&-9F5~dw93)c8Bx9}_HC(ier z@8I16Uv!?r+XX(3InWPcmhuMdF~~ccaX8%?93OW+-ZF4H<{D1Gu{Q_5yZ-U?j))%o6ptMk1HSLb^ZuFm%+T%GStxH{jPaCN>n;p%*E!qxfSgsbzt30LQP z6RytpCS0BGO}IMWn{ai$H{t4hZ^G62-h`|3y$M(6dlRnC_abPV^>Ro#;)tI?O^n1dxgwMcDt7o>xp&5T4D{c znz)QuMO;c;LR?G?6Dx@o#B$;y;zHsA;(X#f;#^{PVmD$EF_GAnm_Upt(!>xkNDL7D zM2hGmdWj^_LyRNF5(%Q47(;XsaiWvxAlivth@FX@h#duE+|k4iM2v_M5h6@@M2K(+ zOBli-f<%Du6K#Z#7^Sd(CH_MEnfMd&N8%5}?};~v-x0qhenb44_!aR>;uplviJuX# z6F((>Lj0Kc5%ELf2gGZ{_lfTjuM)2i-z8oqULsy3zC(PQ_!jX^;v2-*i5G~k5nm;~ zLVTI{67f9o9PvfsS>hSu3&iJ%&k;`(PZ6Ibo+O?iK0`cCe46+a@k!z_;uFN9#3RJR z#K(z;h>sBu5+5Z#LOeixn7E&~kN6OAub|7`L)=Y#koW-ce&R0TPU3yU9mMU#ZN#m_ zEyT^lO~j4F4aD`tbwrD35)GnG)QBokA<9IFC=vxCPvnRZB1>e5t;7~$GqH)dme@#a zAg&>uCFT?Jh`Gcm#2n&e;w0ik;soM& z;yB`1Vz!{$)lj-!4W--FP`X_WrQ6j|x?K&W+tpCIT@9t%)lj-!4W--FP`X_WrQ6j| zx?K&W+tpCIT@9t%)lj-!4W--FP`X_WrQ6j|x?K&W+tpCIT@9t%)lj-!4W--FP`X_W zrQ6*W$}x=SXyPd1Na6_MaN;oHP~s5cVB#R+K;i&me_|G~AF(g753x6~7qKTXlbAtF zC#Dfoi7CWnVh=%=)lj;uhSFs_N|)78x~zs0w;D>^YAA85p~S6*61N&k+-fLstD(fLh7z|LO5AEF zajT)k?d}p$-0nt9A|?{M5)+8=M4A{P28jWppGXmXL@$vfdWdnvSRz4m6Jv-jB2IJ? z9YnjJ+tu%T-0s56or#@@9f{Gz4n&NI5)mRyctnVB2}>BlA%aAJ@Dpu>j~J!+|BcaA z&;Rq~M@4oGoovoCGJ9{3~@^N_Xm;LX2?zh_mqTYe0 z;LVTyc79^iI}qbl z)PL4pt|9@QD-QxfMDg6I0#GZ*g9{X7Ap4hFiCj9@`#@5GH#@-t{9sd6# z;s2izn;1*Qx?(%Tg3&)le;NHj^xM%dN1u*!)$lj42jB_a18@i4_f`mB8(xcdy`6P${(eAI|?fI&{Fc^Z(j${-4kNEzbY@F8u$`V3+?x z?!DXm|C`)(?h5y8ccFWNdzibAJH;LECgJ~&xIr}zP5}I!`6+e)e8YUvJZT;^A2xTHn@kmF0A6EOn~Tg+ ztk@rq^?Er2Fm1+~|2PBiB}dKx{G{_yoB?<<*5@-=onM7r085-xo#XTjz{$>#GuGMJ z2?hTe{B`h$!54#H34T8K$>4**yMwm`>%o!WHNne*7Y5G?E)1R&JSw<mp9fg1u9oB?=6;F7?(finX00`FHVqm?QjM z+fQ)@;0tZfw0*kmK|G-PpDDxFPmh>V%WCWC5mRbeY&~ude5GY^_4s;V zN-e|I)8^|DQ)*d!J?=QTuF7KTL28{Ti>n8zwWbVHkEGBTrXHVf989TY_4JH`DYXnw z4@zN5Ey2^%<{Kxb)DlcR(q!0_VCq2=SW!#x^hn+;rvy`v&mA|~mekWTPCTh4czUEU zJgFry^|<3Eo058Z#=(9M*#;wREy(!joD$Nn5~^S~^i%Txv=uuyCU(9j}G6qfY5KEnHZD~I(6-#PqU(H)* zO8aPku%wpu))YK#rM*}WmekUoOu~{{nyE>#q?TrARajC>(={c}_cTqx$X1%FDeQ_V zP0{dZEwrWGnFl9o32sMxT(GZ|;C4g`_O%k+j!412R@xO6@qK#D zlqP5%oT#PoYz!xADXp1sqLzlVBAlqDK^DV_S{l$|I8jUeES_phDHg+tTIyqF+Ln5m z2`6eP$;?Tn)T6E8L@kZeJUCHHW3{3(oq`QcE3d0#jrleXp*6DIe zqJ{2Q+`3313h^~oB^(Q{X-SoEEKKGlC?TpXHYF9pv2bgbLP=y0tmLIZuiv6r>k zqDtV{QCoth2nm$d6KxS1C^w%)Ylxt<-VIen29aB6bBfSGbTr-+p@Pz8l2a5JbQ24l zB2*BGg-#I~h(xbbgajfn&laJ8ZN7xOO1r2Um=FhXQ8h3jhZhz_1APg3m39##D0Sf= zE~*SBAk(%88I)W&h>Orc^qMwBRl&q8zbQfm+uX#c%S};a&`sb+swgUm)GMY45tP(= zQ-lagy$zD z5jrSsAj(Bm!UQbDMODItScr>ILTL{RaS>7|Rbe46LJQITVp9|)^d(>+EMqS6qZ3%5|_^r>K&cfStIgl9<58ouW!&LR`c}NFv(6MO;)x zOo)rP2t}0pfQz^YNt7g9#6@VLBymh(5uzyl!$n*aRdf@JOcA1po}jozXrh$DMO;)> zOo)rP2vwBka1j?(787t07a@ztbh^-|=pxEtC@w-6qhs0kr1LKl&O5Er3~NI{5;kVT~6BQA<8x`~OV zsH&KNkGQC+n2-|-i>itV_=t_#d=7I7Civ9JhPlt%d0Ll#j}zx5DCX@o6GMMxuRVvABy zq|ukaXs{^Sh?*_y6d{fXVy-Dd8>OF|DT+Ay64*OXRCP??=)$6^V**DP7DXL>2^?Km z6nR817)TaX9}^f07F8b;(Ceb;qc4F?1Vs@@+zp15MJS|PWveNQL}JtBB~DQlvU^uk zfI`Zi%jZo25{X@$*u7LxiR{LZu>grg9)55OkVt7d%PFWvc8|6N(Mar9#gMTeB8eo1 zj0I6iw|lZFKqS%jIPCR=NFs$HV*w(G!qv8*64~ubp=U^>^gP2BppmjY6hp>>ie$IQ zQb9x#efRsF0#p*sSDFGe5JmBH3gAKUpIz~ z1!$y{V#rv4N=g&#&=i?O3R^p&lIU-aEvQCz%QmKhYGk);V=9P7;%28i1xO?+4%>nX zWVZ-a0RoA>WgAmLC9)erRS=29{SO#ZfJWjjFnTONBhh-PEr>+ob}(ctKqFC#A!7j= ziPCANpc2`QA!9)$vU^l9WD1Z-x!EgC0UC)G7%~6(Ef$#qhBp%7{+3#7zOxh)fJ03nGp91gDsSC?ir6Z2`iF zioQX#hBC_i-|Q5ijOcs*yZ--o{r~U!|Gm4tJG>jcx>vwi5m$R_y^FmIyt8p$#C-3> z=tY?K*dgc!+X8A=I7|F}DFN8rXl9Va1d30xgmi?a|e z2%H^Qgm)pF7&tm`NMOIf49tb31HFMUcq2jt=A*y*-|+teGa|3}zlD<#p7B44vk^Y# zzYnJ)-0Hv1Uy-Q}-?d3k{a#5={a#5={a#5={a#5={a#5={a#5={a#5={a#5={a#5= z{a#5={a#5={a#5={a#5={a#5={a#5={a#5={a#5={a#5={a#5={a#5={a#5={a#5= z{a#5={a#5={a#5={a#5={a#5={a#5={a#5=jb2Gljb2Gljb2Gljb2Gljb2Gljb2Gl zjb2Gljb2Gljb2Gljb2Gljb2Gljb2Gljb2Gljb2Gljb2Gljb2Gljb2Gljb2Gljb2Gl zjb2Gljb2Gljb6#nU&Zg04E=@pGw~rBkmw>CvGEdC2k>ZCT=2bByJ$CC$1w}M3ZO` zb)rU8i3(9BN<@(;5P2d;j1XBOLu@6s5Sxij#I?jm!MM-{;u_*=;ws`w;tJw&Vm+~r zSWB!SRuh*ItB6a9ONfh!VPYk*f>=&mL|jN*K%7sUN1RKXL%f$*Mx0HYMJy$j5N8r+ z5Q~XL#OcIo#CwQ^!~)_}Vm>jCm`j{O%pp!DP9jbuP9Tmajw6mGW)sH{M-xX8M-oR6 zhZBbphZ2Vn2NMSo2NDMm`xCQ>{fK>ueTcn@y@)-DnZyiYIx&ryN=zXp6MGQ56T166m!~|kIktT+SL1KXDCsITo(Mu$W9%39ZmPioY#2BKBh!dSe2hmRKLhMZJBp4go zkr++vK*WeB5h22aM}!EMu!JETB1i-XKhZ|`h*1jnuf$)7KNEi<{z&|R_&xCk@jK$T z#BYdS6Tc#UN&JHNIq@^%b>gSQPlz8AKN2L|9}+(xUL(Fwe2;jQc!l^b@iOre@gngZ z;@g5`NJB}6G?ZjWLrI1-lw?RlNrp6(WJp6vhBTC9NJB}6G?ZjWLrI1-lw?RlNrp6( zWJp6vhBTC9NJHrfX(&A*4W%cfq4b0_l%9}=(i759dO{jXPe?=Q327)jAq}M`q@nbL zG?bpuw*?JWV`Be3p2U zc!Ky0@i_5m;#0&YiN^#9S3^m-8cM>|P!g_&l5jPYgsY(>Tn#1RYA6X;LrJ(AO2XAp z60U}la5a>KtDz)Z4JF}fC<#|XNw^wH!qrd`u7;9uHI#&_p(I=lCE;o)30Ff&xEe~r z)ld?yhLUi%h4KkT^eFKN@i6gm;vwQ=#Dl~~iH{Hu5FaM)C+;IYMBGc4x8sci=D&k7PcDB)#@Bh0)-v9UG*vm0_|KDS= z2V(D!-4v_Dw#2T8T^u_%wkS47Pyd@18^7)JKVS5>(I0O+{qHfH{`daqjoaS+Hyk}D zx+pp)dQ^1(=(OngXiu~~8jiL_ei!*^1UHN}D{F(5_!}o>X7rq{+|7{6h8D15>0Pp@=7(OX{l%D^$ zE6)Gx2uF17|7TeH{|46nKjVGe`_Q(v|Bd(;-E#bU?mga#-Vxp`Z<;s3!#_>Dh}RZ+ zBlLRc)zCLW&xRhy$^Z9+ZVRWq1Mbak)y-^s|KFMJsqXQ3|KC1%|KE^17VrPFc>mvT?2qkB_N(>__EYvj zdyl;h>;HMX!LGI!*`;=&J<%Rv_qWsRc$>5xHe&te4fFc8)&D2V!{$EoK69NZnoVY% zSz(r$)67ZcNHfb!-M020!m+`>c7Ei%=zPU_+W7=_=iljE?-ZR)&N^qM^IqpP=OpJy zXO=S+Z~q&Im47$*7hU=PPVmdYr-PpeemHn1-u+h$ZVIjs4hPQ(o*tYNJUVzlaAt5~ zun+J4iv@%D*Y7X4o&Wb#;L*VSfja}&2TFm>fy)EKf%gVZ51br0DsW(6W?*8VFVGd( zA>jD`q^JMAoPKT>otU!8reKcmIGt;or&c zw*9s3H*G&^d#UZKZC_}6yzQa3d)w~7KZl*FPU-c{GgVCK`Fwqsg-lgv^!m>5J5`<0 z>znUXF{9^m`_`E%CiGAX3!qiZ=ONYO+A8Mr+I)SOgEv)~(DU_SfwPJkJ*39DrYbXf zzCJ8)RxzcA6wZgMVoDGFEi_e3=ppL>RMYvqKFpw3bw00ef8@!0p4*3|%&JW1`T8c} z?qojC*M|kls!r(jor(L@3BA6#riuwY6pqDBVLlHx6`C3~RZQq1Gj41Z^LcWoSVFAo zgkImMtDGt(^n7mbLZ^!PJS2LZDrWPLSm0E3GOu@@Q8dQ{9dAUbfXqtcT$m{bRlL`XN;YCkivmQYP;GBgz*TAwE6JiThKR`rdTYEpZ`x=FQ%d0D4A4tZ|x zL{lBhtemMPv>Fx&s->y`8Ls-4L@0$l2=*JR#?fatkbHqqqee^wkmCRX4o7qdB5;3~sRVg;_Ul1ZH7Q(3{f zSYxX!XD$}jDi>*ASXirE$V{xJRW8s>oTpbgpN(*yUgbQNW0kCOu9oAQT{%ZnI8U$g zUKZm#y~;8sah_h~Y$maSRXK}EtYB4^YAc+lS6RYLELK&{)J!Z^RnE{97ON_YwOFi6 zl|@Wq#i?>SlKAtjF_qJ_Cag=9_pl?ZGgTH!aT2S&6mQxXh zbd#fP1p+B8up(7~LP`=VQWcfRr4%bt709GC*lTr^WQWa53B(Wk@ zfmF)PPIoHMN>m)S6_HAm!o*a8R^lo!F;$?I$dvW+3e*yrSca-VEzxADtw1YL8b~2f zh^4f~ic|%1iHcZ}sz5GLahj<>Eah^$+lq>1QV!Ouh*;uguQV0a$|P2#Dx#Hc@={ZQ zR7&ASQ-M^XJD8X%P)Zc8vK19d%$uSU5lZwt!B$i!lj3KpKqt`zYf}}~$t2dMDx#CP zLHL;}DwN6fP6a}V4i}h;>SPjYQx)hWvgVnJ%48A?QWcR&w1l6j0-Z$1SdgkfCgr+Q zOht4Osfo4%nM6hLGgY9Ia{D(s73d^7oNp_llIRA0rV3;dd3d~4C6o9$uRtZyGgj9t zs**`LVy~hqnUvM_imGH%{7e<7B&x~-4v|C(zXBC#BvSa1uRtS_!s>ZNH8LsZ=~bYS zxZpxtfkMhnz{OO7M4}>omMTz4q(mSfkVs+iyaIic0A4c{=p*vrVydV-CgnW6GUO4N za50skjuQS%TUK>U%6WQas3VFoNGL-brFg0>LmcJOa50rd9g&%~Wr(9>!o^e;bwuVQ zQ-(OAHC#+((MH_GW?NQiOp1%C3~59$TufzE#-yC5R~BV-lXFcO!iZA1n99&a^erx? zGK3MCa50rt7n3psDMJ^f^Q&wbx+r%67gJe;5qB}(l%b1g0~b>nvgmVr7C2>yA`%Oo zvPh!a)9aL>h)B#cW#}Ocn)v3GMGxJcxlS2!h{R&23^7DvktwSb_F!C6h7?Nm4W=wo z2xsSOP8mvwYQv_iLfC_6zpO&ogM;SE5JH$eWrR|O62bwB5lUH<(Ct}a%OZp*#kiyl zB}6I4C1q8@oC< zDT@{&77R4N)p48vdAJ@VOUaDUF^ZIqzqk@atuq# zs*F7{EGa`7(G`XzWhf(37?zYFjM5y#lCmme4~8XWRmL7M29=?V(i4UyWoV-$F)S%V z9VLljNg47e9bi~ehCoU#h9zYvBrbqqNf`nunHZLop^(VLu%s*siAETflvN^o#Jp36 zM4}w3Qx=Kz^{q3&$+n!$L z`Zjm|<}H9TX1>+V);+f!XYjAvE%i3R>@`FF4DZwiRyXzU`7BP^?hn}bFTO=@eio;^ z<>49I|FfunhIi^&bo%ftj{f)4#qD-;>DwsDn;*ru-b1?Qzj_bp+r;utZWX;|SueIf zpR)Zvh=(m%`41-(owV#c*_QiHdH?(azWs~lKS%N3itNo#@>`4QzkZMZ-yY@vVX*J) zX+%qtc-D{q-}kI<_oDni{OiB@QGZL(p0=&@Uq6)nAIADliu$|$|9AcW@B06@NB@6+ zSp8o8VfB0Uht==ZA6CCte^~uq{bBWc^@r8()gM;BSASUjUj1S9d-aFa@6{hxzgK@) z{a*cH^?UV))$i3GR=-z&Sp8o8VfB0Uht==ZA6CCte^~uq{bBWc^@r8()gM;BSASUj zUj1S9d-aFa@6{hxzgK@){a*cHHG1`j)#%k9R-;#cSdCu&VKsX7ht=rSA6BDRe^`xP z{b4nF^@r8y)gM-)SASTIUj1P;di96Z=+z%qqgQ`ejb8m>HG1`j)#%k9R-;#cSdCu& zVKsX7ht=rSA6BDRe^`xP{b4nFrNV0TN`=+vl?u-m-&QJo3~@AZ6mcYR1aUZV7;z|Z z2yrlR5OE-J0I@$Yi`b9Ym)M8co7juklbA`&Af^-3h^fRBVluG@u{*IFF^QN+>`F`^ z#uI5`h!`XWh<+kP^bx&8lIS7E3Hrigi3HJ2j3K&+IMGRT5beY+#LmP{#E!&hVh18d zM2QFyCOjfUxP&DP;SfOrekQqjKhZ|`h*1jfuf$)7KNEi<{z&|R_&xCk@jK$T#BYdS z6Tc#UN&JHNIq@^%b>gSQPlz8AKO%le{D63k_&)JH;#J}m;=9Dl#7o4B#CM2q6W=1f zNqmF&I`IPWHR7wpSBNhYUm~6-o+G|UJWD)7e1Z5p@j2pY;wj>@#FNAm#Ak@diBA)s zB0eeT^&TTWK|D%4LOe`-oOp=%81W$SQQ{-S1H^}k`-%IA4-xkg_YijzA0$3Nyq~y> zxRZDvaR+fbaT{?faSL%XaT9SPaRYHZaUIbjnnZ)B6E&hrRERQBB8o(T$P+nYgvb&Z zVk@zQ*i399t|c}S8;EO&tBI?KD~T(J%Zc^GI$|xchFDEpMyw((B`zT@CWeWX#0p|L zaS?GLaRG5YaUOB5AQje7Qeh1x71mHvVGSh})=*Mm4J8%UP*PzHB^B0CQeh1x71mHv zVGSh})=*Mm4J8%UP*PzHB^B0CQeh1x71mHvVGSh})=*Mm4J8%UP*PzHB^B0CQeh1x z71mHvVGSh}-WJL^jOe|@GU9CFEMh6KggBEpgIG)~B2FhxBi=(SBo+{-67z|9#9ZPO zVh(XKaT0MNaRPBXaU5~1px4t-dOZ!L*V9mXJq@MT(@=Un4W-x9PNl!ybdKya7 z(@>J0hLZF&l%%JjB)!=ZQPMkxIGQ+$IFdMmIGi|)IFvYqIG8wyIFLAi*q@k1>__ZN z>_hBL>_zNJ%p_(I(}`)sR6#1N-}j_9g_)CyJ&4_j-H1uVL}FKB0x_OQ6GOxxF+lVa zDWZ?)C6YuBF^(8ZB#3Te4ADiziB6(}XeV|db|!Wrb|gjC)q&omEja?91 z5<4|^LhP{EezB>s39;T-XDk{EM1LQBJ^D)Yh3GTU$Dk~E;mP5_a3Z{8 z*m{5Ue&hYvd)fP%_j&JA-h zp`VAo7y4%CxzH1#heP*;?g(8MD#HK2Hnco+c4%Sf#L(fPeM6H&L!m@yr;v63>i*jO zk^7SSRrmAmr`!kKyWLyex;x@-a96t*x=Y;o?y>H{?w;=M?tq(s`#>D`!@B8*! z_Bs2ceZ<~p@3hz3lHF|A+hKbyPX9Z_9%B!(d)i4hWxH(52F&lx&&>DDH_dZK-2eB( z{eL|UZ`y1wH#dvs2-|z5_zE_;D;|+aJIFC5@J9jxZ z;qlaSU?gx&U`=3oVA-}^00#u7 z2X@6SfH-ym1pR-+Uia@~r~8-uPx&A9KY(5CH~K67E&eP0m-^4c9)NlNWBrHd9)LlA zw|__M0r*SXuiJi%Jpf;6d%Eqhwg>Qd>VHlH1|Oe0u-Z1%-ZLO}(gy53ZSDZcLguEN!T%XF!~#4VZe631?|T zJU#BfQrl2V&w$uT8*1qpfSt4<#z%KxnrXoIDA(BCHsE_ioMIIHK!tJR$`Zd;NGjBttq^xxqcQ>?!ahMU#eN~mDZQAL-x(o6hgbb{O~F@MKMfV}9KB}h@6kN?O6v>R7{1c_0?mZ4w0^2q zgs-$dpT+Q%*5_$4e5LidES_rXr?42l()t``rfvOXX2MrmKZ%)>O#MV{4PR;f1kHo5 zw0^u+6klomI4y>+w0-!?h*DvQH)%RiPb*8>IQ&m&nOH(+!uD&N)`1)rdh?&fL z#nfl8-Ud^j&b-&0`ZVo%*wm-8u;$dKXjaP9C$rWDTi*jI2v7=9?XIPZo%(K?m}cse zSZ#MxpU6InrY=TD1h~=E;d4X^#@4#}9Q)B!kp~?_3SQZ|=pZV>D_a*K^z|QvyMPknE>@Vj=pX{T z$<{>%QBNK~=%Cy<9zYR7q+Ygl=%5sD#y1Q?h{l7q4jGiZ7P=N4^!3Zb1|dWWhj`VY zgHn7giXnv3&nl-5CG@!|JWUWnB=9sr29a3c)I|l|)I6sS5kvw{4kWP6O+mx!&_HA@ zHg!m#WNmcn&_HA@vUQcflpOw7hXl6yQeua#kJ6<42-Q>sQ}QEJg9u6m9R62>3`!D* z|J5LblEmSEHC4h?+SF7DQ?pR2N|+jTd7G(032}8;Xlts3DLA8Rs)Q-*2dRk?;@(Q8 zrb3v)&rl6QC@o$yHBmy8)=dpUD5<8cK?&u;I1#WWQs}0JZB3OhB|knjD51}n!jDf) zg)k*QJ~arT^f+Q`5JG87KW`0!h!lR0YS2UJyb&=q2qH3JhOR*nk-|?{4SI+aetv4Ihbg?1!`4I( z(Iq^-H3*_4;qk4BA|i>y|7t3UsZm>9Q&UMy_25b>iK$W9h^;{q<)Zjj)gX$}3LfB^ zs$vQr;F_vpN<6?dRmBu6*fppkZe<+q{%}pG$fA76H<%i9 zQ9gyNt%)$=GH?yoL>Yal1CW9=A~il}YWr(yf8;?Mk%uGyYO0N?iKZsnh+a0?nn)uq zay?o=8&U6|u&s$UqU)Ks9f+e`x$M*+j(B)h*qUe~N?}5-i8!J)er9S=N9i(cYa)-x zyxrOw^iit9q+An)L=q83SEq@;E; zHAtkSCfOP!5_>!4H>f5WiOhamgG5T^06K(5N+zCZ5lLiX16NH{5}9}^MI@1l4P`Y| z$vz)MLsSyQxJMC5Umtw+HC4$z2$88lB~gq4Z4D}k)-qhIiA*B%W?K`LMCJ`>1eug1 zMi?~_N?+eW_)b76CG#efTPCsdvIe!3+*^?=dWj^C6RbfnC0RnQNG6gP_ST@8l58TW zs@aG0{7en1i7Q|`Xl)eBi(y+;(d--5z}`d^%|7gtu~ik#KKTPzA)09AU~3{YQzF17 zN)^q%1F>BeqKVRD9a|O6#5K2c+Ny{ql3P7n71cyCiz|t2B3Z!JOV!Q3QJYN_x{3CK z*z^hAL<*bOs?bgRVOKj<$R-jiO;tqG*Eh>`s!&a2t+7>Tru2q?DpVnw$m=y#NG7WJ zu{Bd96Sum-sX{SPILE1;tqJU|g<7H(M)g&wCCZlCDzp-v1yY@+3b91#V%(5uCHlD1 zsX{7I?^08RP)gQDQ$1a)&ECPOLMTzV%2q`teSNye7CMPe*5clvlPF#9R7EA-z6Ij{ zcShm;e`kljU=Il1=kLS+`B(mTO>6?}j(yvo^Jd#CA!aWUTbcatKO4!mTXW6Z-}}Fn zf9CDOc_%G0*M!I8iA-#_Pb6GK>IVGh=W)hV{8_ilmvL?T3;vh4{^rMV#?-gmn(!|- z;l5ood+8tIo$`Z+)BmQAwmaqgzn{cj z!TbNd5c{;g|L?X~BbJM8h^>h&kDVQRPwb@F5wTe@IRS87Y?qi98>J@zz7+im-v0Nu z696mGE&BGqbE2n5PmUfLo%Qz<0KMp_$ZsP*j=U843f}$qSmc4oU6C6j<;dp9<&lfG zo&R?v*8bo8=07?APuBkB{J#%{@6hxAHis_{4~NeQpB|pG?exEie?R^2_a0CG`=a-x z_lS4DcPGwtuXD&J%hI&Jtp;##B{&Cy+f6uv3xDUJcxp%tPyJdHad%1hDd#=0KJ;gl+4uHM%{6BF3 zxb`ph*Es+0W&1VzjD6fbwC()Ag59X^|668HvnSc3>;ZPVonU)yr;XzLzu%jmoA1E^ z@I2oB_XytpcPAVGJpXUloMRT5Q_O60keO*FnUv`=F%xwD=={QY&H1+TCFd#UQJesH zmve(tcD6WIIF~r*IcGR?o!QR8&YsRBCxv%H#hgI!_rceLuLNHRJ`?t!B zFc;hqToYU#JR9%+J27~8aKGSGUH#uB7z&OG{06K4F9yC6_*~$zz()fg2;77>|83DX z|DA_7|INjl{|*l98Q3k5!U=$}K*0Zd|Lgu&{on9Ei}U|J=D!E$+c*3p{tbBV-$nkj z{{G&-sruf(cD(m*l%D?gV%wM7o@#rv?S4F%fBVn0Fkk2MjgPn4mQ2_A#*ex-U|X24 zYxAXjw;&f2c9O*LBrVL?NpgnYwlHUhq#RGu!mOPntEh`E%j-bv~e(~{Xc zq}JOOChz2mID@67vv+AM$h0tfhhn^#sU_2QxZZTX(~|i+H$7}yn7)%HI1Z(S2|Qc{ z$Dy<^e(B17t>amB*l$|LA&Kk1YFo!LbJrbAYqr)5 zI;M4urf`Hx>u7e=z{hozW@5>ub)=@SP3tf=*|Mu`9m>w9prb>W z#NtcqU?vBHPU|4Fa?|r|>p(Wz8a1s0w5LVrbAL_s;IB4|#W;wiwI7q$;7a?lquo5y z+DEJI=-AfY%*3j1OIAA&<+Y}T#SZ)t#-S%HcF0F}GrGre2Qo*aB33()ItBMOO^an| zrZttVv$i#bZLlEInyfVsK~h5)=5X6f0obztzVi)?`|} zOkz!@mDIklCe!LcCO(drZEKts%bHAUENf1~Up=8Uu_n>#))dxcT4PwVg<>pu;6s{= zVqNh_V|Av56%XW%Md-TVk;c(REm`ouWj31DE?OFQZEI(CbFDS4omjlaw06{D9FW%< zt;Mnu)7pW>TTLq_sUa+lwxUeo>ltBcooR)o@eq#6YkAB=hapYjSiF{tly69m#cNp> z51W?JCRm7RIn0}7TR~RDX?U#wlQ<2pLt?}2GbO^L~4`M zgjk}*9NSc>9Fi5Crb^|I7@3-oO8K;>J5A9_cWBr)RVs&MExD;uIfS+3rbs33A8W}? zXeBO1xcrb^|ItV}f_l_-UgsR^k>=`_<6rNlLMw@nBodJ!X2Q=}4ic%^Bo zQV!uOcUCO zi@?X!gft@6gFnA2?o2rXLVk2on7p3MT(}XVKitsTtA&YVsn{88NaY%ejO~@jO;bUs5 zDh|o{culAxBAjcQ&_tAuMF@~Yq_9-ngd)nN;bUs5Bo4vH)Kp0vl0)&DB8j;4c+*rx z9D@Pw)m4&r>gCWH_*;r?kt2$6#4 zr>QzPC_he3=%7S&lWjr>rFZ$us1gq1XQT-wM5Y{y*MJmC2qUHeEksA~8#Po42XQD~ z15${aoM;*%gs7G?4d@`M!SmCA3`$3)5Dwx{yoLy&ZxDy#HAD$BH8>)tb7zH+`K4EP!lMBE>Sc?}4nRK+l_0Y#J~hItLq zM6|-8cnuZBK^SWq5Jf4+p?D3EMI>ROX+Rgz6-+b@mBm4f=o*kkX^unj8qh@)<50W? zWKlA4C|(1?D9vG*X+Rn!i7{IP+9*jJir0WTN?nY_8Y+*2Vu)#|JPyJT(-3(?RTyF# z&_`SVhvGF<9|z@7yoTr_$}yU1h(P)VAvKM|HHDE=0|F_9kd zRVD{96lthT4$4rZ0htuv?RwJ?okVJ#X+S0=g}*ptQc`HFGC6>uNJC|E04MY|Ad@J? zP^6(UIUqxkhRWo?Y;>(MIe@cz8<0uZD={c(KqaNaS+*f63F9gTB@LCy0Xd?#0hxq1 zbFyhbCD8PD}0R5yC1qq@;69o3Cq>8Nh>N=J30S30U2z0%P^ z-mY%+N=J30S2~(vrf&2~M|GoDI;tDJ($OB4=|-<~R5yC1qq@;69o3Cq>8Nh>N=J30 zS30U2y@n#+mUcstZxP=lzCnDQc!BsD@m1n0#FvRL5ziCP5nm*pC7vO^KzyF~9Pu>q z6!BT&N#Y6OGsNS>r-@GypCle5K0!Q6JVHE7e4KcQ_!#jZ@loO z688{y6CWf#K)j#0i@1|`A8`k9J8>IvD{%{PGjS7fBXI+9J#n32Fw!ELM1!akHKIyX zh%!+kibR3P6FFjp$PyW1E3t*xOl%^qB{mWph--+eiK~b!i7SZ9iS@)fVlAz2nmpc1Og<1ERe7y${uzBMU>u`K@kK|P;f&~KtTi%5Cz#61r-$#5c&S^ z`{wgro_n9%@7~FGZ@5pw@;f;3UCf!HI$s1d9X< z1;+~(2<8js362vSD>z0lS1?C#v|zU2D8Vejk%A)xhYJo994a_OaIoMY!KVZV3JwtL zFW678uV7R#Q?QSqBq$0Bg1jIn$O`rr%ngsU{Ek1m@3#^&@b3cu&ZDf!4$#Hf}I3A3MLD75KIzmFW647tza9$ z)`G1B69s*O34(|qEa(-O0z(iI1O)+sU*Hqy0!^R_yn-HqN6;-$1YL~aM}mI{J{0_2 z@Bv}KU{eMRHf6wIQw9t+Wx!xl1`IZ3z+h7b3^rw|!KO?#*p#UTn=;j4Q>Geh%2b0* znQE{pQw=s{s==mAHQ1D?2AeX~U{j_VY|2!FO_^%2DN_wLWon2`nHpkKriR#*sUbFH zYKTpl8hW2Bni_gf@HfG`f_DUO3;rtji{Q_Kw*-F@{88`+!JC3N1iu&jPVl1Q)_(jR0~`h#pr ze~?Y-53(u!K{lm7$fooM*_8euo6;X-Q~HB!N`H_|=?}6g{XsURKgg!^2icVVAe+)3 zWK;TsY)XHSP3aG^Dg8kEU;-xqvO@Lj=o z1a}MW5`0_mEy10FI|Sbpd_!=%;Om0h1h)#lCb&g#v*4?On*?7Gd|7a#U`)^vv;{3e zQ_v991vNocP!W^`HweBY_@dx?!50MA2|h3QoZwo)HG-=JpA}psxKeP1;Bvub1Wa`G z&-i~@|L-}h|M!r2k9mjrRkLYcZ(eDhZ=PkIYA!P8BKm(OqW=@-RC5P2V)~4ajJJ*7 z8P6F{7!Mow8s9Q*FGi^v|Xq-g(z^dfPGA+M8Gd@K@R++K;rmwcE4~zC?XiyGT1nTdtj`9ittpjcR*g4uGlJWUWv0 zXK*D=F$2JL>gDRW>go+100*c!HKj(?UDR#VklOA2oA*uj0C>cE zpZ6~Bt=={~06y!z$a@ZZ037Q*%sUDXfP{CdcL#68tM&Yy*8qH`=dqp#cn!cCu?FDh z*aP77o+Ul=;Q{a|cmPbpdiT3+@BpCb|5p+H|Cr|i&-W4i{}qn@zYNj;YdlLm3q41B z4)T;ddw6WmR9*p4#|nV&bidjCQunXBAM1Xg`}_YY{=bR=JjEBCp;a+_*X@fUo~DZ7 zJ7mq*su;YZtc%nt4c_^p^VBNF?vU6?tzzU3i5=A{#_f>Es#O}c^F{Yos~ELIVzOSP zF*_v+PXevVgLY9&DNvkSVYj$e#h9I6x$CkXy}FYmukh&A9VLkmN!7`mR7P-SJMeMvA*nhE znK-ibATez8_V$k$SF%&0F)O`)ltD;r=IHjc3 z>IB|zg;tG7R#LBqxdcU_ReL$9;Nw%(l zlFDgZ8jd8DQza9QB$Z`S2#zF`rIL&93Y8^X9*!iHQ#ge$43(2*GrllXPLd?PFjV+s z$1uJy=oS9hG28`5k_tX{!1Mz{dWAlA;CjN5q(WaiVDL+N<#@@2BS~ce?+Hhe%6v}Y zvqNPbZ^k!Rt#TY^;+sw7SWe-yZRHqF!I7jgms9wTQ<)=0;7C$AS}KPlNoBSq@lm33 zlqBIuQkjKPzTw$=C z&@1@LK^G36J}UUkfvX8ek_x_ZAcc=06@27C3XUWdl1OD3pF=97kthO3k_wCDa8#?X zNDd>&w*rx*=8OlhLNcig!;z!{oundgB&m>6D#LIjsX!_z6OJSmh$R(*BT0qjau}cW z^a{x(c7P*Eh4pfnKDJayFOiFnEfp5bVK|ahSTKk21+YSbiK^g8Qenj$R^UidfnwsQ z_ySWQ#Z-pz1*XE1IgBqbT7@K28HOWCg*9^+p93qbnZs}-sjy}a<8xqzHFFq_Bo$~T zO2Cn%0?DKU!jYr`&7{kEwpL-$9LCq13Ph7m7hi8Gq?*`#nO0%Z9Kv^;3XA3tJ)RKF zZr>2T=v1JZiZX<+Hx&|1if`yFy#mFgvT!7+ zux1Y7^;Kcb9O^1>t5;YvhiEc_3TY;Gg(FD?qKV=wwF)#7HNugk!jd^ejwBV5Oy3Z! zf?|?YHNC=$IYf>m6(}aQPJv${mxUuqh2?UH97!r9mnd?fRw1=SYQ0*4Sfa!cdWEHO zh#W~OER{p#NK%1Rl6|gPCav@ht8Gu@#OaWk@BqI$D{O632+^We6o|AxDxjNhQwkT&>JXIRrO}$szPB%Fsz&S{cHKEWG~9 z&_y~2xQ~<}jMzF?FOw`H4{z`?>*5gHN6OGe6oH(TSr&)jK2nA(l1;B_Wym77!hNJn zs))jHA1Ol?kqP&aGE|YSNLnvL6=^fvN6IXVLvSA{Ll$XsQZKVC4w3sv8L~*31A3Ws z5oO?{P$pqSW=t!yE)Kzcq)fVqv$#YrLl&_kxsQ~gi#Rs4stj2~3R+cWRU9Hmk}^~g zw$9SZ&_ry7BS{&Oh!h-2%1}f)9vn%^EQv#KBq_5b4v`~CnIsV>F{qVU5r^PNQYJ<8 z4bD-^5JV*As%4Tx-{1_b%xXA@S**&WhQ7i1TA9UgkeV&T5LxroGHIc2a3{44DMVsN zwG1IdBCD232YrKkt7XU_5|i~ZiJ&q_-QhB;;GmMy%B+He=mVFbf^fz~AGiz^?Dh?! z4_syy9K<7EW)&PnZ@A1VI7q$WGE|Uu#N!PW#6j?QLj=i@7ro&!R1kT1LP-R%TU;wc z196N4{aP6kNO`NYGHc)5(fWmdsKIEt!es37XZ;{XxFe)Kp%1gReMhRcvaY#r3gEP{i0RcmDy!9nzf zZ-59=g=zH$s37)Rq1^xtq^zWV18d+Q^@eYN2GWJVvvdPQkhaIP8%PC_g2yIAkdBAm z@C{Hw+7pfU2IwHpXO@TJ|GnLFyFw@XpU}Nt3&|~iwp@Wta|JFqIF40RcHeA+o(?)? z-pWPGmM!-?iEYz- z+cs63J}`zhz4QMbo!;EzRsXXJ_HmisXb5X^bD4hPKWpQrjB33g5=FH2z-HT^H#UjX zWu)`+LPq z_VD{8W%SJY%juc*n6UQv@By`m;NdPPlk^opA7 z=oK~D(JN}QqgT{qN3W>Kj$Tod9lfF^J9`wAP!tpdc|lH)73?jTA=pc>r(h4kbip)1MvxYy1g^jlBn1h9EwBV} z!H6Ixhzf=ULxMrUfMBX%cR{~kH^Pv)t6&$w6v57dodi1yCJS~DOcHD_*iNvmU>m{K zf~^D-1$}}Ef`}k2=oOd(Ll6=K1p$Fy;1lQqO`r(93DyeE5u7bJOK_%OjbOFl48iGwRf3g*6@ul0(*&mqmI;;$mJkLFHf7LYQw9w- zWzb+#1`Rf4&|p&r4K`)aU{eMSHf7LYQw9w-Wzb+#1`Rf4&|p&r4K`)aU{eMSHf7LY zQw9w-Wzb+#1`Rf4&|p&r3^rxJU{eMRHf6wIQw9t+Wx!xl1`IZ3z&M308Zb^4oFrH* zI8ktdV3A;<;CR6T!F<6y!Eu6P1;+^H3g!ro7R(kLC72~RQgDReaKT}MLj{Krq9#A@ z1IEFUd63{!f&&Ey2=*83C)igoDwrwQM^F+J1qDG~kP~DDdkba=_7dzV*h4T~FinsV zqy;H~D{ur!K|){)EJ0i_B8Um1f?>gsU{Ek1m@3#^&@b3cu&ZDf!4$#Hf}I3A3MLD7 z5KIzmFW8R!{}1f$(E5LGV*S6TvHstW%)8B7&5n74d5w9oxz=22jW>)J{<-?!*WmyECHVhe2><`(#)}ezn1l}4GjUd+ldzaV$`_%^T z|Jy=0!u$VPo&!+4|BnnE7%GIOg+@ZVg(ig}Auafi;9rBU2Y(xUJowY#J;6JIHw7EP zF9fd$o)=uRVFkcLg8Kyb3?_pE!O6i1L0{k>8&&{(D)6(weSy0Iw+1?a8v>sVTogDb zup)3`;F!Q+fqese2VBenxHEhIceD5Zi~gtl5Bq=U|Caw|f5U&h{|f*4{x$w({zd+y z{RjK^!5V;xf3*hS+Z)yZ{HgCA-yOc2d^Py~U+z2Cx5l@Weg6;e<*^3fh;KLFcD`Pp zs(+xrrN4?503XvI;1vMJ^fFceT#xzxR_KfMV=({UsJ@q;)CcvQ^sV%N@%?`qzW?`W z-_~x?n%Wn%%e8a0)!GtX|L;>+|8Ke$*LLIC|9aH-)jz4PsJ~GkRqw~@e_vO})UtZ5 zx?WwUu2N4@k5vy>_fz*~-~TD_{WmcC-}~M_dSCYb+WT|wkGQ&-IuA@O;bwc&cZSXRhZ^&!}gH z$MFn#cJfU0_%Q<@dH=uA{j2Ury6@}0tNT_o&MvLN{yY|(;2QAf>GoN0-D!|N4^mOR zLGC1lNEw4^nV~YrvNW zwU85BgPeJggtJeBy?HEhf@_dBk7B{ur@`(#7M$Q3aOXiDoZuSd&7)YShP4LVd60rT zTm#-bI9^z*!b7PFHpKG*Y$C>vi}vb}MmmfUCo)kuq25^+O~Ri?G!X=ECP_^@EU5;%8#N zPsx5!y?!9?2fs0`et=}oQ0x1137E5=WZ|0bE2)%LALUvw^HO~#m&MFWT74hRoPx{} zXCeSVuNNf=m%4gEio04pFR2UldQLV!hT>T+4!`~S-n_Z%8ofS4Hp4Byz87zXTXKC* zPQmxNz6Yn^#af@vsiSc0X;S3UfL70NJxW5Yr?J@=pRLzZvK4bC)m<(ExA{7p8gWgq z%3PhD8slB?m9LXiBd#di=IS5JpBiSbr=#n+>9n5&T- z=A`+WPpc2{cFaOmALJBfp{fr^J#eP0Pvy)!Ht&v1+`_b0@8`S~*t(nK;UUtuy z9deLiay?uJK~^>IYGRINiF72n8!R);z&$_Ro`>QG1QM?olc(nsG&*Qd2Q z$)hrYaFjaq5qa=;uR|XxwN9&(K4QNMwK~ZoQtS0PtK$eFPxLy}kn$ zA&+!A@YSwEAE}}%^*Z#CGN~~`AgK@nPHK=y%3a&7)}WC%-}zdN6jB+%wXU&5j?j!& zHAp1w7)LHNl8R$Ss~SX-&gmkp29ZP|gqzeLlC&qnO=?g{WUkS)8bp%LV@R)&NMiG_ zq1B+0*o?rF8jIw}IjEdO5|tzHqz0A5W(1zpAd*PI;kyQrL<)f?HE1MKScb6%jie%% z4(c@$NmP!&lNzh!h!RDeP)W+&T~lk2NfuR$cK&}D{NBboG#%+qSDk|T&asj*6q z&@zoRQc3KHw^EH|azq*NYc8MP)e%&YM)kPtsFtvNsY8p88Kg*pw}RlR2mT|HOM7OBLbxcxkPFZ z2ZUTAg$R@y)DkH~pww6`M<@cN#%ehd)oM^nI)>I7%94 z#&S8bLa&irA`by5HPTCzspEhUOsZ%=ud!f`P$)_bf=RpLk*%>}j!-B{jTLi5iQ!04 zOdQEZiWPGNFR>ac<_N`~)L1b`;L}}$Vq!=5bk|rhN4jp%wHhnt2;xs_P)s`dRa%V| za|H1xH7F+KU9QzgF_F4Rt3fbP&9=H;gJ9CBBmSgDl8Mb{Yc(h)r3SScE9M9mm#eX2 zj!+~@jT94`FVkue%x+&ynW5Dnm`HU!rqxI=k+-K-BfV5&2jaXSn3T7NT7zIJzF1hR zK`ycJAZ%o{j3I2KMr!Gcou$`UEMv49T@7MMMN@i>#8QdT{G&CfB_$y;HIhpurtF5| z&`T6wsnwvCs2i(Q)>tfK&=a)=vBXwbM^cGXt?4yZ${2->)L1EFQ?wc@Wei~>H7F$= z1YsjJNF^1yP^*ztBDG$vK`Bw+5qgb9|7{W$s zkVx9^8a#Nckuijg)S!{54`CxUXe3Ik)@m$~F_I%lBsQ+WVM!rzrcfRTBx)h&^%@is zoAJi2K_HPr+(?ZDGS>A)oB{+A6|PgOkVhouXjKwNC5E_>DygF{c9d3yI3f#iBURSM zSl6XnX;o+=GSOwOvNXofWv)UR=?tQJm8CJJV5Pe%q>-+4L#;v@Q6U0CSs7zk+ET5O zGWud`wJHl^3|;0bgb_7kwaY4Wk*)^1%vA^@B_U2#C?i=nf~ZTD#u#4oRY)TWq03x_ zG9rZ~E~^kmq!!{7p^HeNe_VwuQax9zY8AqWL(kQ#kVVSFV_k(XB5A&6XjLd9%4AUw zgb^upm8;N2q_D(g6|zWHy{c6qi^xM)xk{>tdeBv_vMk2XRj!gO;+mxODpZj+qpMsc zSyW=^DpyGtu^ADlB#YRLu5y)h5t##em1QwTkt0>eB4r{Lm1Qx8u5uN!h&-rF6|#uZ z=ql?~*2P$FA1WeURAT5gS4kLAJ9^DkC?o8irBzuMW0O%gbP@YudD|*vk@mY7nIw#; z{5-wNx)`I-kt*wA43biXE~1Q!h5}hcsPSB_N}}kCB2c6XO+?n5E#LpQeE;9_{eN@( z{%?nQyw?u%c&{Di@m@R3>~JIv#~c9_R|?J$q`+F>5=wZlB#YlnHf z*ADY|uN~&`UMtMwy;hjVd#x}J^jcva=(WN;&})Txpw|lXK(7_%fnF=j1HD$52YRhA z5A<4L9_Y2gJkV=}d7#${^FXf^=7C--%mckvmvX1 zOYkSb9|eC9yeW7?@O#1U1g{HT6TB*TMewrVCBch=7X;4>o+HG2e=B%a@QmO$f?o@s z7W_)^l;BCh6M|m~9vA#V@R;CH!OsPc2!1AbSn!bGr-Gjd9uzzvxL@#N!H)#@3GNmA zP;ign2ZHYlz9;yu;5&l51$PO)E%=t;PQe|5ZwkI4xLxpd!EJ(D1z!`~BDh)bRl!Yy zuL!;@xKS`B=m^?^mY^wU2c%7PmNUlM##a6Mt9_X~pS1fLgtPH?T@8o||q z&kC**Tq(FhaJk?z!KH#r1nUJC3oa5|D7ZjyzTiB;xq{CKJ}p=$SSvV3aJJwq!I^?J zg4KdE1g8sD304YL2$l;@6PzkoCRi$1A~;2Gvfw1aV!?@m69kI{3kAmu76|4G<_V4y z94k0RFjp`~aI|2y;3&Z?!I6R^1cwU_6C5fyL~yX+Ai<{u2MP`l>@V0)u&-cLFjKIP zpd=^?3WB^KC&&u+7R(UrCD>E2hhVy3njj-c3sM4C;0Tg}1R>UI3oJogFd~QvqJm+; zkYG?SAebuHUC=MsO|YwA7r_+4&Vro;I|?QXb`VSwY%kbOur0v~vnf`XO|imkiWO#4 ztT3Bmh1nD<%%)gjHpL3FDOQ+GvBGSM6=qYcFq>k9*%T|xrdVM%#R{`2R+vq(!fc8a zW>c&%n_`986f4Z8SYbBB3bQFzm`$<5Y>E|TQ>^d?Q??O{wiaw9m?-EIOb|o_VL`9J z6c~b#ASeh3`~sgq7ia=i;1%=;Jc4e4BIsiDekAyZ;6uUR39()_CDzNP#CqA3STCD` zpJTEMn-c3~Q)0brO01VniS@E6v0gSM*2|{EdfAj%FPjqUWm97K=EuilQ)0brO01Vn ziS@E6v0gSM*2|{EdfAj%FPjqUWm94%n-VkGl$gn;#7r^8{D6;OzAt!B@HfG`f_DUO z3;rtji{Q_Kw*-F@{88`+!JC3N1iu&jPVlx>EeV+I2`*Xukg*eJAh5-EZPA~LX z6B5q7QHwTh?DjU!C%9>D_JP_Py^$Ypnj4SG&TNQqXWl9ER4Q)25B8o@{@j8|Y>qS^Xc}%#SzFPe^q2e_+!ljj+C8dkYP8`X^RF zH~V+{#@_%RZ=V}|yE~grw{znrZOZpM`Tu_k%dDGkWB&ga%%{vp%pb%5|2A_B{{L5- z>&E8X5+nE3VxzH1#heAIL-5I($)C^r8x-xV@=&aCb zp%X%LLWhKAhV~34LIa^4LlZ-RkP>_+_(t%B;FH0Jff|E~*P7W_=`^q|cC zzke_n%mib>U4z?U_J5UU|9>U$o4{j%2Lj&>+#dLHpc1$?us*OB-v5gO$HM!6KY0H; znEQXnz{Efxp!nbQzu|v@z5nlp_x~;arvD56%l+s2SNoUx7x-uS5Af&xY0Uh;i+?-6 z>G%5H_x;KDitjf*n)&~`nEC(9zKZV}-^IRje9L_&_~!Ty@$KW=)0gl~_3hxB;PdJK zz`Xyj>(A*==nv`l=-<+B)|>hl^{ey?^t1HS^hNs7`a$|W`ks11pQ=yR`}BaWXzyrm zXfJ3_X+Oiv|94^L|1r$`f3~8qGXMW~dv5RfN>8olx}Ga~&g)szv#jU%p4mMI z_w3WNS5LBM5D@?qdxAaPo_9Te@Vw;tmFE%9eV)5Lw|P3AFL|!^TajiInHyq zXFpHQlk!A8yLz_u7#>ged)pUNJSdUUTjb57 zB+1{c#qK;w@^@>II}dh+zgvs^d3?#0S_|$xs1g2dEq3QglD}IE?mXCfw$_3(4{C(J zTZ^4}lH~8!VrQP@6s^V1JW2SwwcyM{$AiCHi@bSI;!<|@wGNo}s=#0;&ug12EM zk>+yFny)oaldOx>=Bb=DPj4=uMJAY=&!k6FP_^p6XSbtb>WL)`Sis z3r|LqWiUaLCpRI3IN3qH2^FNW@FQ=M4*C*^<7q+$>BQ1%6EcYXR%lI#AY~=>CPa`< z5tAo3Sq2j{d2$mnNZVst6EaAt=k+G(AofJuN0WsxLG8E+A;kG0#-qtXn7~pZO$Z_F zNiCJ7(5CwbDeP8kitK2T7$S*9MVhRJHidIEp@zuqDr%;)qyOq)D3Svk}nIBuT_ku#`xXHPJ>xV@f0h$Jl~ z(u6Wn5;03nNF$Dq*p4QYk#$49e8%= z(PVM75z*0vIHF2KbTnBTZA5f5L!5`DM4GIPb{CcsX+j&Razu1ANgR>HQX)-OM;q&# zt4*jQZVR3P7DpQq9a!Xd3jt1+aP0vjO`iL^8PS6_AN2IW*NCWbS)R7*&0ePfD zVo{L>^pWbhLT^AIsd9vLG$4`K6CoW9l1RnIJEcJysn`hVXh0;9LP$pgB1uIM($RoS z!rG|TfJ#z@>-7f9q)j0m4U$R4Mo32kI!Q&+I3H3<#m1r{4M-(rBBrCkVrf(GRfEJ5 zXNgFT2CJn_ksJ+DOYDnCjt1nCl2}xv0lh?Bh~#LnUfOtE8?2W$Eh^F=y~Lgf>S&N) zDmH>T8cYcl8HP7bu?HqZ3J~RNHVeYBCWxS zX=7251{9O3K~P5nnn|0_)*7stHWn3Wux8p6%F$rWv=PeDV9m4;P}P8DQUEK$QAsqB zI!9}eW+H`ZAeji}#PT8yC?@5t(Hg9n7M2%juwq)Yyhwu;(}L1BpqRAdDy_kiX<>Ph z21zFJX6OwlW;dc_vAjrwHPfQyMHW}v5%%|TBkb?xM%drWjj+F$8)1JhH^Tm2ZiM~4+z9)7xe@mFawF{T z`+K<&_V;ol?C<49*x$>Iu%nk7VMi}F!j4{UgdM%y2s?VY5q9))BkbtqM%dBIjj*Ga z8(~K;H^PoyZiF4Z+z2~*xe<2sawF{MpdbtsH z^l~HY=;cP((aVjnqn8`GpZvX?$d3h=2-XWO7F;B_P;i0Ze8G8wa|NFfd|I$huvT!6 z;B3KJf-?nc1giyS2u>HQ608)g5G)s*COB2FOt4h2L~x4WWWh;-#ex$BCkPe^77C6R zEFdH!^9Az+#|e%V93z-3m?Jn^Fk5hxV3y!W!4ZPP1&0X^6&xZsSa6WwQ-T8p2MG2T z>?hb)Fe;cS*hf$j6a@uAUXT-H1$zr-2=)@}DcD0WT`*0M5u^nvfh%wXNkKwj3oJog zFd~QvqJm+;kYG?SAebuHUC=MsO|YwA7r_+4&Vro;I|?QXb`VSwY%kbOu&rPl!PbJU z1QP{)f(e3%AS~z=m;yr(5(EVSfnVSg=mJfk3cP|Ifk)6SPy}6!@JE7w2tE}2UGRb6 zeZhN#MEGxlcLnbV-WL2-@E5_K1#b!dB>1D?4}v!ZZwP)b_?_T&!E1t71+NHR7Q7^Q zQSgG`dBJmn-wK`;JR|sx;Manu1-}wJC3sTsgy5Hg#|6I-JSKQl@N>ZQ zso*Dq2L%rZ?ic)6@FT%}f_nu&6x<{Df#Cas?+Lyu_>SOi!CiuH6YTJ}1a}JV5PVbc z4Z-b#uM2Jy+$#8*;1rV@iW6Z|oCurZ zMA#H3!lpP8HpPjsDNckkB*%Uj> zrr2RN#SXJ6c9>1E!)%HjW>f4in_`FA6g$kO*kLxs4znqCm`$<6Y>FLbQ|vICVu#rj zJItooVK&7Mvnh6%O|ipliXCQC?C=ItE)k2?3oaI1B)Cv;f#7_>d4h8VpAmdouuia6 zaE{wYPX_SUt`8-a;aUBO2*hyxxSu35%rQ`8@A?YNOSzJjclXY^1WHMj0 zGs;&cj>e>_cp@H8VJABGQmK&4Id;)1W)sPLK3j^Xlj(FZl}}iSLL%o{wi7Q{cFJ-} z`BJu&FO*7or8IG7l&VscTq@z(g?P4r+mf)dxb>-Y$-&jKGO4(mPUMSd3aNa$fQDk_ z<0Z7Ll!LrvJn80(mVH*==&+nrE{;RnxXG5C#Xki%m&RSfov^YnCRHdTvbgfaxRrpF znQYuj=Tk)|pUM>zxP)$2xvg(>NUF+O$#gF1!T=|mwo52ibmOI5wopjtbBRi@x5;c z(9lzMF^&fYPiN7>jf`j0X**TSWGy$BvTZw?%Gf34<_V)yr7EWcqj3veJXDEzDxS@v zSOON73h7K5f6zz^g;Y9I%%#x2Qt?tDRm>M0D_y{S$flGFCyeecRpC_gSv0@An<(MN z7o8;Pv(d70HZHz{XQSwp+@h1Ra;}rHZPZjMWZkR<9Vw-8)%TB#_DfZ6y5Qs!xkS8} zNfZkOCvDlqLduTk^2kodp%rf4aUn1c^dp%oX6+2@#$ll~i9*~`PK?aljjF=jc10_l z#PgN3>9V2$6_O<<4&BMbArE>wd_(nnX@58xP2w$7IR87Ji3ci zh0A~%aCedxOiyL9B|BAuj1=QpTrb=Jw0X3RH10zhLYpZT^KQ}3Iq5VW-8d9xU3heg zRFx`bv$*?iKH;F{q5vACopMt)M685I5>InFm5k#_!ez@B3Kq_;m?&m(tYWGFL3iz3(n%z<=~5bxcP5v};1G#ox&WC-+qRob zq_WD|-qD?;sw|$kw1bS71gPc?;4vmGOQ0cVT|A+=VmfVQoNU6zi?oDy1R920C_z*3*km2Y z#(M{^%)DJh1Hm11a*i@HG`gKsg?50~C|+2Z9NHghaqtq%W^*~{lw;)!DGN_Y(J5wJ z=!u0_9PViW*9>OEu)NbH;MhxO(|qK8O33b8*3-ipfl& z5Km@v4m1RZw(z9m>4ppylp}(p+elSzx>&+19`7vdoVW7%M6!@c;_=68&dOVO9P?H( z<>1a2OQa0RjGdv&2Z_t!4UksW1V^{ta8?OimXw=!QxKp$j%%SE7Sd>-xXuu(L;+V9 ztv~G)v(Srp39m;h?%*EbB@E?IP6>=|B~@jLHcl6}1dj>Y9CpNGLgIzfE5)-J+>m0X zkU^7zj-iG^3AX`{XfB?~p@WoG&JT=El&Vs8$&I`548#D>gPl&K@^~FW3FsA(aC134 zg6RFEaYC*Gb;QFRFE~yH&9Q`+e6s7S{?R_E3OWQeOJ?xWbnUoR!s{=W!%HTW!2N$$uHyYV+t^LQ8xP#YvCZEY?af$K}QVTuDG~VNMV{Kf#R7P3i8|~dt71}^NU5KOqW2aIjCriB? z2s<9HT!~6UZfuA<-k~Y#g5o7&qe{FWaRuyjUfEV3HKi&y6L%AMC^GSQ(Z$o2vC#KJ z2Zl}q+L^#Zo4{jfC2{48cnQUEDYH(xES##9j_2@J#iIbR$P_HRsMAnBbu=JVLGmHrkQ7K_GH&5Q zl~8vMVim`wK|dWY)B^e~(1x51nZjf0qT7#0z)rY$ew2CYs9&nerqK@Yx^?X&bjHbL zGU!yKVIRHcA-yP{Pp5G|6L!fd(c?nq(GQaXx+}$W*G=A0pH!93!zMjRjSJ8k~Tz!-z(`f ze*T~Vr_p9Dm{&~UcN$tM`idnxQ9$!9q%FLJ@IV)mF1qIUO`&|VXVfcIp_`IJQ-a7j z5GNeawVhHCx3z#Df_O@@(0vQN=M0{=B1FuJ<1o-2hzM>~p`?sr8gi;iQBrvR(Egy6 z=%S#-!$O=@8V>;a9ZseYM+3qSI6RZ+K^JXwk?dOLzN>si{eAsbeWAV`=Ab`c%cy@;Tk28fH_emG9gWA0^~PSIzl7$7 zBEkEEX9umoE2@ENw*1+01-4v)EmvU675Hzw0yB@5*Gd|{QH%JA?Bp=mgVCBI1|hQ4 zcS5HIKOONN#6S6zi(xc7nRMxQQ8HP=7!|rcc!w1a9~?bK-gP;=dgJJj-qes=H-Wcgv{m zmQmd;qq_ftqq=z!WBOf1w5qwvmF9P_;=it{4M&>gZO>yv13qv># ze(B=ZOS**r@Y$(|5d@5OVdOVg#LvBTlScQJs`3~!f?@cvh{07Czo9aCA*S$&D1l$* z_zZzx(-_^uTP&W$h%SCi;+GtTs>*D=02 zV8kbd!73XAt|biSr1M#Py25uO45VV5E`!5hFglwq;0oeLcqUg=u9&nb$L05sv!YRm z6n>&6an^bISeJA#e(fYMx`7W-c=2P9DB;kUKSn3(Fa;mKa`@8gq;czTAMi;FUn%nV@|MPE zBYv;rPNceS+-5W_RpI8j_%@4iKKi^@#1Ly9HejqD-;MAc1B3GEWEO)*84Po!@bL_v z$y^$h$4~`^?c-VHmTg8;8>+%UG;TNzH(^)|S2A8o#%Z58hB-2pgHeh&e(c-1LIPu3 z7KVz+*la3~Hij>Nu9Dkk)Rn4A7)MWAISfe9_(mGNFdF~BH!?S$r>6&`56l>UE#lU= z7RK?5MGOtPNek`ONp`iiruhE@x^L_<-!b1XpEsX0A2#nbzh&NHw#+Y@SD6=@XPc*) zCzx~1L(G}xUS`6aYVKf0Ox^g<_%lcUKW;o|e1Ajq|8*SwzuH)8EHGvp2N}f;(f^Z- zu%U)N2)z}0E%Z$2@z8^z?}cv1>VM_XHKFyPb)i+ElS0RZjtK1+%7)y~aA-rfD} z|L+F>5PUKCRPf>8y@>t4CD`P(|IQDdiM9V01?L10#@c^-{d4UbIzoXu+ep#)lpI0waKck+Z zE>(|Lk5Ug(OX_shQv1~%)CsEY{m}bY@9(_Nd4K8ssrQH8JH0o1Ti)xvS9&k>p5;B& zyU=^I_aN^+-aWmxcdB=?x6kYMcJ;i|^G46}Jx}&L+;eZww|Zp#zpHvK>^ZyVw4M_- ztpB$c*8iK@vqMj$NB4Z_`LpMB&$FJ#Jr8=m@43Tslc(;v&U3lvJkM&+QqKathJup+Z<%X^bOy((|-2MDXC79pdoD`eo}Csy>DY z9@-Hx++!5OgL)8$H-;b{?20(NF^b_qCgSkM5X95%OCt_%jDmQSG~)2aD2fN05r;QM zVLVD2ri>wu2WN4lKE`1@X$rm@Ll_SgzCs^E7!MUe@ZA{Vcu)kvcViUBgC9@Gqc|QV zjo`bntvH3?yDy;u{Pic(e z9DV5(`j{bkh`k#NNg1rCG!{e>6%FWP0m(!Z-k4u@MHJqcPm+kj8`C9;D7-O^kAx_^ zF%_Aa64xrj_Wdpdu+uE74gld3$Od1UX_qOe@hjmA4+$t#>%eF*N}}rk$mniAcH5 z5~O^ov-Hj>D50cihKbI}QaGh|PU1|OVWP8Gl9*wlbE52u874X>aPgH|XA#$k874Xl zc`MB@(K(*C!oCH_!)e#_&U~o`k#e1RymgA!IgZOBQm%8XY(=D8=NKt+q1Krzsr71S z4wpDW?;I`rAyTe0Tat*B>m0>9B2un1i+5b5caD^;m|>!G1Rn)6Omq(CObP++9LAYF z9<_5Q7g?lt4v`{=lBs=K#(`q+DlzE`dn7 z&VF2Cwbt2JHeRH5MmcMZ)|n}l4C$SHxDtwI@07SGBIP!m=fdmM zPL30Ev`&_HL!?}1Z_YYO>&)ORM9Ovcl9HHVqO&JwVnLmFT#fw^r*oTpy;D=p;FXX(c)d*$>l7bZkjNk~)ZNq&9_V zB|355718q@gf`-$A^@}lX+#RsN_3!%NMTxu4ulcyF|2hUi^xLodX8~<&-+CiYaJMhgC6!2w<%PRir&* zT8C9Jg=r-^P(?b6OY{y@kuC|s@jH-392?V0bfAi44W^aoKo?=*EUg1s#8ylz(P33g zVOog}t73|R^*c~Ss_{I%!?Kv7HIzCei#Rl71gePAm{y_#RaAWLT&+Wz=yR1<)ea;P zS##751QCf zuGWScQbiZ)ZB|1UvruSlRzr6_c7z&YGu9hzvmCk>l5S{rgm$4RJd$RP}yt+yeDbUs*cv<*2#X$04|=W_}Rj<%tO zv>6fgZRjDAH0eYef`~ow*tA&>UFdxqdWbwMJ=%sI(vFR8wGBnYVZvG)dWfxvoo|yI zqQTT#D z)rgSyHUyE9SZ}mVl8B1%vTd^_x-{=Zn=}!*4$h54(dX{2wMi2d7ZXslA&N+0kC9rZIVSCa*f`GDt0Rl8iC%1EK(9Hi?&%89h!=w4P8Vott{HkNfNK9 zHnfrU#Z(k+h$AJjvS=If*zI$$vS=IfsQ8=#tfVMpQZ4JWHmRe}K{R(8;z+6WdK>CUhr`OEZO9{%G`&$9`iOe)@@ca? zIuxeeCV50fSL$u3BNd`%3wfkMn17-TeWcvAxP&B-K4-qxCVf;KOh3_vK+;xBKhb7| zbZGjCHWZSIV`b4cX(Z0+BCX95>0tJWHYAb?VfKkOG?I=!q_;^UkvVK?Z5Bxfvrn`k zk~k1%pJ+oPsY=W~(S}GO6SGgWA(BWT!n@5H>0tJWHZ&4>SWmRg8tG7{w@n(UIFW59 z=xr8Bhx)&55=k5q{ogiJl9K5EwjqN7MleD>klP8^29Q1$N z5K0{JNWBf6q{`9%Z9^%k@D+NSq!LBY|7}AnQ3UhwRC9ii5Aq7 z&J6wE7VD*hcTkJ<(xF)>TBMgKjz_Wu!K5Vmzb#fwhi0K@v0^&t|F%dm(MmAm5eue6 zQ%|%Ym^cyie_Ietq|pCuv0ysX|822gI_UqlmT+nGe_Iet?1=tv3wlY{>T<0Gy`