Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/core.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Sanchez <1175054+carlossanlop@users.noreply.github.com>2022-09-23 00:03:43 +0300
committerGitHub <noreply@github.com>2022-09-23 00:03:43 +0300
commitc5f7b72318cb58f8c806f0eb40990287f32b8c69 (patch)
tree573006bbeb4462d471ac67743d74cdb0a2a1d328
parentf2e52a8fa04511e3489fe687ea0bd7429442fbcb (diff)
Api-diff between 7.0-preview7 and 7.0-rc1 (#7808)
* Initial commit * Remove AsyncStateMachineAttribute * Remove aspnet file with no significant change. * Manually fix tool bugs * Apply suggestions from code review Co-authored-by: Jeremy Barton <jbarton@microsoft.com> * Apply suggestions from code review Co-authored-by: Jeremy Barton <jbarton@microsoft.com> Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com> Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1.md36
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Authorization.md18
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Builder.md43
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Components.Routing.md25
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Components.md13
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Connections.Features.md10
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Connections.md19
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Http.Features.md19
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Http.md13
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Identity.md26
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.ModelBinding.md10
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.Rendering.md11
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.ViewFeatures.md10
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.OutputCaching.md35
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.RateLimiting.md40
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Routing.Patterns.md10
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Routing.md38
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Https.md10
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.md17
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.SignalR.md43
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Configuration.md44
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.DependencyInjection.md71
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Hosting.Internal.md11
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Hosting.md57
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Logging.Configuration.md14
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Logging.md25
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.ObjectPool.md13
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Options.md26
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.JSInterop.md35
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_System.Diagnostics.Eventing.Reader.md12
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_System.Threading.RateLimiting.md169
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1.md35
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_Microsoft.Win32.md15
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Buffers.md11
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.ComponentModel.md11
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Data.SqlTypes.md21
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Diagnostics.CodeAnalysis.md10
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Diagnostics.md55
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Formats.Asn1.md10
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.IO.md10
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Linq.md423
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Net.Http.Json.md109
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Net.NetworkInformation.md189
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Numerics.md114
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Reflection.Emit.md19
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Reflection.md12
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.InteropServices.md21
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.DataContracts.md55
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.Json.md11
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.md16
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Versioning.md19
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.md11
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Security.Cryptography.X509Certificates.md100
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Security.Cryptography.md117
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.Json.Serialization.Metadata.md10
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.Json.Serialization.md14
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.RegularExpressions.md44
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Transactions.md13
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Xml.Serialization.md15
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Xml.md29
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.md336
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1.md11
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Diagnostics.Eventing.Reader.md12
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Diagnostics.md10
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Resources.Tools.md18
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Windows.Forms.Design.md12
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Windows.Forms.md263
-rw-r--r--release-notes/7.0/preview/api-diff/rc1/README.md7
68 files changed, 3111 insertions, 0 deletions
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1.md
new file mode 100644
index 00000000..cdaddd5c
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1.md
@@ -0,0 +1,36 @@
+# API Difference 7.0-preview7 vs 7.0-rc1
+
+API listing follows standard diff formatting.
+Lines preceded by a '+' are additions and a '-' indicates removal.
+
+* [Microsoft.AspNetCore.Authorization](7.0-rc1_Microsoft.AspNetCore.Authorization.md)
+* [Microsoft.AspNetCore.Builder](7.0-rc1_Microsoft.AspNetCore.Builder.md)
+* [Microsoft.AspNetCore.Components](7.0-rc1_Microsoft.AspNetCore.Components.md)
+* [Microsoft.AspNetCore.Components.Routing](7.0-rc1_Microsoft.AspNetCore.Components.Routing.md)
+* [Microsoft.AspNetCore.Connections](7.0-rc1_Microsoft.AspNetCore.Connections.md)
+* [Microsoft.AspNetCore.Connections.Features](7.0-rc1_Microsoft.AspNetCore.Connections.Features.md)
+* [Microsoft.AspNetCore.Http](7.0-rc1_Microsoft.AspNetCore.Http.md)
+* [Microsoft.AspNetCore.Http.Features](7.0-rc1_Microsoft.AspNetCore.Http.Features.md)
+* [Microsoft.AspNetCore.Identity](7.0-rc1_Microsoft.AspNetCore.Identity.md)
+* [Microsoft.AspNetCore.Mvc.ModelBinding](7.0-rc1_Microsoft.AspNetCore.Mvc.ModelBinding.md)
+* [Microsoft.AspNetCore.Mvc.Rendering](7.0-rc1_Microsoft.AspNetCore.Mvc.Rendering.md)
+* [Microsoft.AspNetCore.Mvc.ViewFeatures](7.0-rc1_Microsoft.AspNetCore.Mvc.ViewFeatures.md)
+* [Microsoft.AspNetCore.OutputCaching](7.0-rc1_Microsoft.AspNetCore.OutputCaching.md)
+* [Microsoft.AspNetCore.RateLimiting](7.0-rc1_Microsoft.AspNetCore.RateLimiting.md)
+* [Microsoft.AspNetCore.Routing](7.0-rc1_Microsoft.AspNetCore.Routing.md)
+* [Microsoft.AspNetCore.Routing.Patterns](7.0-rc1_Microsoft.AspNetCore.Routing.Patterns.md)
+* [Microsoft.AspNetCore.Server.Kestrel.Https](7.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Https.md)
+* [Microsoft.AspNetCore.Server.Kestrel.Transport.Quic](7.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.md)
+* [Microsoft.AspNetCore.SignalR](7.0-rc1_Microsoft.AspNetCore.SignalR.md)
+* [Microsoft.Extensions.Configuration](7.0-rc1_Microsoft.Extensions.Configuration.md)
+* [Microsoft.Extensions.DependencyInjection](7.0-rc1_Microsoft.Extensions.DependencyInjection.md)
+* [Microsoft.Extensions.Hosting](7.0-rc1_Microsoft.Extensions.Hosting.md)
+* [Microsoft.Extensions.Hosting.Internal](7.0-rc1_Microsoft.Extensions.Hosting.Internal.md)
+* [Microsoft.Extensions.Logging](7.0-rc1_Microsoft.Extensions.Logging.md)
+* [Microsoft.Extensions.Logging.Configuration](7.0-rc1_Microsoft.Extensions.Logging.Configuration.md)
+* [Microsoft.Extensions.ObjectPool](7.0-rc1_Microsoft.Extensions.ObjectPool.md)
+* [Microsoft.Extensions.Options](7.0-rc1_Microsoft.Extensions.Options.md)
+* [Microsoft.JSInterop](7.0-rc1_Microsoft.JSInterop.md)
+* [System.Diagnostics.Eventing.Reader](7.0-rc1_System.Diagnostics.Eventing.Reader.md)
+* [System.Threading.RateLimiting](7.0-rc1_System.Threading.RateLimiting.md)
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Authorization.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Authorization.md
new file mode 100644
index 00000000..d01d9a22
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Authorization.md
@@ -0,0 +1,18 @@
+# Microsoft.AspNetCore.Authorization
+
+``` diff
+ namespace Microsoft.AspNetCore.Authorization {
+ public class AuthorizationMiddleware {
++ public AuthorizationMiddleware(RequestDelegate next, IAuthorizationPolicyProvider policyProvider, IServiceProvider services);
+- public Task Invoke(HttpContext context);
++ public Task Invoke(HttpContext context);
+ }
+ public class DefaultAuthorizationPolicyProvider : IAuthorizationPolicyProvider {
++ public virtual bool AllowsCachingPolicies { get; }
+ }
+ public interface IAuthorizationPolicyProvider {
++ bool AllowsCachingPolicies { get; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Builder.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Builder.md
new file mode 100644
index 00000000..a139f8c6
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Builder.md
@@ -0,0 +1,43 @@
+# Microsoft.AspNetCore.Builder
+
+``` diff
+ namespace Microsoft.AspNetCore.Builder {
+ public sealed class ComponentEndpointConventionBuilder : IEndpointConventionBuilder, IHubEndpointConventionBuilder {
++ public void Finally(Action<EndpointBuilder> finalConvention);
+ }
+ public sealed class ConnectionEndpointRouteBuilder : IEndpointConventionBuilder {
++ public void Finally(Action<EndpointBuilder> finalConvention);
+ }
+ public sealed class ControllerActionEndpointConventionBuilder : IEndpointConventionBuilder {
++ public void Finally(Action<EndpointBuilder> finalConvention);
+ }
+ public abstract class EndpointBuilder {
++ public IList<Func<EndpointFilterFactoryContext, EndpointFilterDelegate, EndpointFilterDelegate>> FilterFactories { [CompilerGeneratedAttribute] get; }
+ }
+ public sealed class HubEndpointConventionBuilder : IEndpointConventionBuilder, IHubEndpointConventionBuilder {
++ public void Finally(Action<EndpointBuilder> finalConvention);
+ }
+ public interface IEndpointConventionBuilder {
++ void Finally(Action<EndpointBuilder> finallyConvention);
+ }
+ public sealed class PageActionEndpointConventionBuilder : IEndpointConventionBuilder {
++ public void Finally(Action<EndpointBuilder> finalConvention);
+ }
++ public static class RateLimiterApplicationBuilderExtensions {
++ public static IApplicationBuilder UseRateLimiter(this IApplicationBuilder app);
++ public static IApplicationBuilder UseRateLimiter(this IApplicationBuilder app, RateLimiterOptions options);
++ }
++ public static class RateLimiterEndpointConventionBuilderExtensions {
++ public static TBuilder DisableRateLimiting<TBuilder>(this TBuilder builder) where TBuilder : IEndpointConventionBuilder;
++ public static TBuilder RequireRateLimiting<TBuilder, TPartitionKey>(this TBuilder builder, IRateLimiterPolicy<TPartitionKey> policy) where TBuilder : IEndpointConventionBuilder;
++ public static TBuilder RequireRateLimiting<TBuilder>(this TBuilder builder, string policyName) where TBuilder : IEndpointConventionBuilder;
++ }
++ public static class RateLimiterServiceCollectionExtensions {
++ public static IServiceCollection AddRateLimiter(this IServiceCollection services, Action<RateLimiterOptions> configureOptions);
++ }
+ public sealed class RouteHandlerBuilder : IEndpointConventionBuilder {
++ public void Finally(Action<EndpointBuilder> finalConvention);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Components.Routing.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Components.Routing.md
new file mode 100644
index 00000000..073717d1
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Components.Routing.md
@@ -0,0 +1,25 @@
+# Microsoft.AspNetCore.Components.Routing
+
+``` diff
+ namespace Microsoft.AspNetCore.Components.Routing {
++ public sealed class LocationChangingContext {
++ public LocationChangingContext();
++ public CancellationToken CancellationToken { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public string? HistoryEntryState { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public bool IsNavigationIntercepted { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public required string TargetLocation { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public void PreventNavigation();
++ }
++ public sealed class NavigationLock : IAsyncDisposable, IComponent {
++ public NavigationLock();
++ [ParameterAttribute]
++ public bool ConfirmExternalNavigation { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ [ParameterAttribute]
++ public EventCallback<LocationChangingContext> OnBeforeInternalNavigation { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ void IComponent.Attach(RenderHandle renderHandle);
++ Task IComponent.SetParametersAsync(ParameterView parameters);
++ ValueTask IAsyncDisposable.DisposeAsync();
++ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Components.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Components.md
new file mode 100644
index 00000000..9771622c
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Components.md
@@ -0,0 +1,13 @@
+# Microsoft.AspNetCore.Components
+
+``` diff
+ namespace Microsoft.AspNetCore.Components {
+ public abstract class NavigationManager {
++ protected virtual void HandleLocationChangingHandlerException(Exception ex, LocationChangingContext context);
++ protected ValueTask<bool> NotifyLocationChangingAsync(string uri, string? state, bool isNavigationIntercepted);
++ public IDisposable RegisterLocationChangingHandler(Func<LocationChangingContext, ValueTask> locationChangingHandler);
++ protected virtual void SetNavigationLockState(bool value);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Connections.Features.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Connections.Features.md
new file mode 100644
index 00000000..98590f5b
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Connections.Features.md
@@ -0,0 +1,10 @@
+# Microsoft.AspNetCore.Connections.Features
+
+``` diff
+ namespace Microsoft.AspNetCore.Connections.Features {
++ public interface IStreamClosedFeature {
++ void OnClosed(Action<object?> callback, object? state);
++ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Connections.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Connections.md
new file mode 100644
index 00000000..e1ef43ba
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Connections.md
@@ -0,0 +1,19 @@
+# Microsoft.AspNetCore.Connections
+
+``` diff
+ namespace Microsoft.AspNetCore.Connections {
++ public class TlsConnectionCallbackContext {
++ public TlsConnectionCallbackContext();
++ public SslClientHelloInfo ClientHelloInfo { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public BaseConnectionContext Connection { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public object? State { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ }
++ public class TlsConnectionCallbackOptions {
++ public TlsConnectionCallbackOptions();
++ public List<SslApplicationProtocol> ApplicationProtocols { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public Func<TlsConnectionCallbackContext, CancellationToken, ValueTask<SslServerAuthenticationOptions>> OnConnection { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public object? OnConnectionState { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Http.Features.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Http.Features.md
new file mode 100644
index 00000000..d0c508eb
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Http.Features.md
@@ -0,0 +1,19 @@
+# Microsoft.AspNetCore.Http.Features
+
+``` diff
+ namespace Microsoft.AspNetCore.Http.Features {
++ [RequiresPreviewFeaturesAttribute("WebTransport is a preview feature")]
++ public interface IHttpWebTransportFeature {
++ bool IsWebTransportRequest { get; }
++ ValueTask<IWebTransportSession> AcceptAsync(CancellationToken cancellationToken = default(CancellationToken));
++ }
++ [RequiresPreviewFeaturesAttribute("WebTransport is a preview feature")]
++ public interface IWebTransportSession {
++ long SessionId { get; }
++ void Abort(int errorCode);
++ ValueTask<ConnectionContext?> AcceptStreamAsync(CancellationToken cancellationToken = default(CancellationToken));
++ ValueTask<ConnectionContext?> OpenUnidirectionalStreamAsync(CancellationToken cancellationToken = default(CancellationToken));
++ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Http.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Http.md
new file mode 100644
index 00000000..62b757fa
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Http.md
@@ -0,0 +1,13 @@
+# Microsoft.AspNetCore.Http
+
+``` diff
+ namespace Microsoft.AspNetCore.Http {
+ public static class EndpointFilterExtensions {
+- [RequiresUnreferencedCodeAttribute("This API may perform reflection on the supplied delegate and its parameters. These types may be trimmed if not directly referenced.")]
+- public static TBuilder AddEndpointFilter<TBuilder>(this TBuilder builder, Func<EndpointFilterFactoryContext, EndpointFilterDelegate, EndpointFilterDelegate> filterFactory) where TBuilder : IEndpointConventionBuilder;
++ [RequiresUnreferencedCodeAttribute("This API may perform reflection on the supplied delegate and its parameters. These types may be trimmed if not directly referenced.")]
++ public static TBuilder AddEndpointFilterFactory<TBuilder>(this TBuilder builder, Func<EndpointFilterFactoryContext, EndpointFilterDelegate, EndpointFilterDelegate> filterFactory) where TBuilder : IEndpointConventionBuilder;
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Identity.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Identity.md
new file mode 100644
index 00000000..24a6023e
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Identity.md
@@ -0,0 +1,26 @@
+# Microsoft.AspNetCore.Identity
+
+``` diff
+ namespace Microsoft.AspNetCore.Identity {
+ public class IdentityBuilder {
+- public IdentityBuilder(Type user, Type role, IServiceCollection services);
++ public IdentityBuilder(Type user, [DynamicallyAccessedMembersAttribute(3)] Type role, IServiceCollection services);
+- public Type? RoleType { [CompilerGeneratedAttribute] get; }
++ [DynamicallyAccessedMembersAttribute(3)]
++ public Type? RoleType { [CompilerGeneratedAttribute] get; }
+- public virtual IdentityBuilder AddTokenProvider(string providerName, Type provider);
++ public virtual IdentityBuilder AddTokenProvider(string providerName, [DynamicallyAccessedMembersAttribute(3)] Type provider);
+ }
+ public abstract class RoleStoreBase<TRole, TKey, TUserRole, TRoleClaim> : IDisposable, IQueryableRoleStore<TRole>, IRoleClaimStore<TRole>, IRoleStore<TRole> where TRole : IdentityRole<TKey> where TKey : IEquatable<TKey> where TUserRole : IdentityUserRole<TKey>, new() where TRoleClaim : IdentityRoleClaim<TKey>, new() {
+- public virtual TKey? ConvertIdFromString(string? id);
++ [UnconditionalSuppressMessageAttribute("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification="TKey is annoated with RequiresUnreferencedCodeAttribute.All.")]
++ public virtual TKey? ConvertIdFromString(string? id);
+ }
+ public abstract class UserStoreBase<TUser, TKey, TUserClaim, TUserLogin, TUserToken> : IDisposable, IQueryableUserStore<TUser>, IUserAuthenticationTokenStore<TUser>, IUserAuthenticatorKeyStore<TUser>, IUserClaimStore<TUser>, IUserEmailStore<TUser>, IUserLockoutStore<TUser>, IUserLoginStore<TUser>, IUserPasswordStore<TUser>, IUserPhoneNumberStore<TUser>, IUserSecurityStampStore<TUser>, IUserStore<TUser>, IUserTwoFactorRecoveryCodeStore<TUser>, IUserTwoFactorStore<TUser> where TUser : IdentityUser<TKey> where TKey : IEquatable<TKey> where TUserClaim : IdentityUserClaim<TKey>, new() where TUserLogin : IdentityUserLogin<TKey>, new() where TUserToken : IdentityUserToken<TKey>, new() {
+- public virtual TKey? ConvertIdFromString(string? id);
++ [UnconditionalSuppressMessageAttribute("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification="TKey is annoated with RequiresUnreferencedCodeAttribute.All.")]
++ public virtual TKey? ConvertIdFromString(string? id);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.ModelBinding.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.ModelBinding.md
new file mode 100644
index 00000000..f8983a35
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.ModelBinding.md
@@ -0,0 +1,10 @@
+# Microsoft.AspNetCore.Mvc.ModelBinding
+
+``` diff
+ namespace Microsoft.AspNetCore.Mvc.ModelBinding {
+ public class JQueryFormValueProvider : JQueryValueProvider {
++ public override ValueProviderResult GetValue(string key);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.Rendering.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.Rendering.md
new file mode 100644
index 00000000..2aa3403d
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.Rendering.md
@@ -0,0 +1,11 @@
+# Microsoft.AspNetCore.Mvc.Rendering
+
+``` diff
+ namespace Microsoft.AspNetCore.Mvc.Rendering {
++ public enum FormInputRenderMode {
++ AlwaysUseCurrentCulture = 1,
++ DetectCultureFromInputType = 0,
++ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.ViewFeatures.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.ViewFeatures.md
new file mode 100644
index 00000000..3890ab6d
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Mvc.ViewFeatures.md
@@ -0,0 +1,10 @@
+# Microsoft.AspNetCore.Mvc.ViewFeatures
+
+``` diff
+ namespace Microsoft.AspNetCore.Mvc.ViewFeatures {
+ public class HtmlHelperOptions {
++ public FormInputRenderMode FormInputRenderMode { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.OutputCaching.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.OutputCaching.md
new file mode 100644
index 00000000..07fd0572
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.OutputCaching.md
@@ -0,0 +1,35 @@
+# Microsoft.AspNetCore.OutputCaching
+
+``` diff
+ namespace Microsoft.AspNetCore.OutputCaching {
+ public sealed class CacheVaryByRules {
++ public StringValues HeaderNames { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+- public StringValues Headers { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public StringValues RouteValueNames { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+ }
+ [AttributeUsageAttribute(68, AllowMultiple=false, Inherited=true)]
+ public sealed class OutputCacheAttribute : Attribute {
++ public string[]? VaryByHeaderNames { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+- public string[]? VaryByHeaders { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public string[]? VaryByRouteValueNames { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+ }
+ public sealed class OutputCacheContext {
++ public OutputCacheContext();
+- public CacheVaryByRules CacheVaryByRules { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public CacheVaryByRules CacheVaryByRules { [CompilerGeneratedAttribute] get; }
+- public HttpContext HttpContext { [CompilerGeneratedAttribute] get; }
++ public required HttpContext HttpContext { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+- public DateTimeOffset? ResponseTime { [CompilerGeneratedAttribute] get; }
++ public DateTimeOffset? ResponseTime { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+ }
+ public sealed class OutputCachePolicyBuilder {
++ public OutputCachePolicyBuilder Cache();
+- public OutputCachePolicyBuilder VaryByHeader(params string[] headers);
++ public OutputCachePolicyBuilder VaryByHeader(params string[] headerNames);
++ public OutputCachePolicyBuilder VaryByRouteValue(params string[] routeValueNames);
+- public OutputCachePolicyBuilder With(Func<OutputCacheContext, CancellationToken, Task<bool>> predicate);
++ public OutputCachePolicyBuilder With(Func<OutputCacheContext, CancellationToken, ValueTask<bool>> predicate);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.RateLimiting.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.RateLimiting.md
new file mode 100644
index 00000000..217bcb75
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.RateLimiting.md
@@ -0,0 +1,40 @@
+# Microsoft.AspNetCore.RateLimiting
+
+``` diff
++namespace Microsoft.AspNetCore.RateLimiting {
++ [AttributeUsageAttribute(68, AllowMultiple=false, Inherited=true)]
++ public sealed class DisableRateLimitingAttribute : Attribute {
++ public DisableRateLimitingAttribute();
++ }
++ [AttributeUsageAttribute(68, AllowMultiple=false, Inherited=true)]
++ public sealed class EnableRateLimitingAttribute : Attribute {
++ public EnableRateLimitingAttribute(string policyName);
++ public string PolicyName { [CompilerGeneratedAttribute] get; }
++ }
++ public interface IRateLimiterPolicy<TPartitionKey> {
++ Func<OnRejectedContext, CancellationToken, ValueTask>? OnRejected { get; }
++ RateLimitPartition<TPartitionKey> GetPartition(HttpContext httpContext);
++ }
++ public sealed class OnRejectedContext {
++ public OnRejectedContext();
++ public required HttpContext HttpContext { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public required RateLimitLease Lease { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ }
++ public sealed class RateLimiterOptions {
++ public RateLimiterOptions();
++ public PartitionedRateLimiter<HttpContext>? GlobalLimiter { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public Func<OnRejectedContext, CancellationToken, ValueTask>? OnRejected { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public int RejectionStatusCode { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public RateLimiterOptions AddPolicy<TPartitionKey, TPolicy>(string policyName) where TPolicy : IRateLimiterPolicy<TPartitionKey>;
++ public RateLimiterOptions AddPolicy<TPartitionKey>(string policyName, IRateLimiterPolicy<TPartitionKey> policy);
++ public RateLimiterOptions AddPolicy<TPartitionKey>(string policyName, Func<HttpContext, RateLimitPartition<TPartitionKey>> partitioner);
++ }
++ public static class RateLimiterOptionsExtensions {
++ public static RateLimiterOptions AddConcurrencyLimiter(this RateLimiterOptions options, string policyName, Action<ConcurrencyLimiterOptions> configureOptions);
++ public static RateLimiterOptions AddFixedWindowLimiter(this RateLimiterOptions options, string policyName, Action<FixedWindowRateLimiterOptions> configureOptions);
++ public static RateLimiterOptions AddSlidingWindowLimiter(this RateLimiterOptions options, string policyName, Action<SlidingWindowRateLimiterOptions> configureOptions);
++ public static RateLimiterOptions AddTokenBucketLimiter(this RateLimiterOptions options, string policyName, Action<TokenBucketRateLimiterOptions> configureOptions);
++ }
++}
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Routing.Patterns.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Routing.Patterns.md
new file mode 100644
index 00000000..13407ead
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Routing.Patterns.md
@@ -0,0 +1,10 @@
+# Microsoft.AspNetCore.Routing.Patterns
+
+``` diff
+ namespace Microsoft.AspNetCore.Routing.Patterns {
+ public static class RoutePatternFactory {
++ public static RoutePattern Combine(RoutePattern? left, RoutePattern right);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Routing.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Routing.md
new file mode 100644
index 00000000..825286c9
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Routing.md
@@ -0,0 +1,38 @@
+# Microsoft.AspNetCore.Routing
+
+``` diff
+ namespace Microsoft.AspNetCore.Routing {
+ [DebuggerDisplayAttribute("{DebuggerToString(),nq}")]
+ public sealed class HttpMethodMetadata : IHttpMethodMetadata {
+- public bool AcceptCorsPreflight { get; }
++ public bool AcceptCorsPreflight { get; set; }
+ }
+ public interface IHttpMethodMetadata {
+- bool AcceptCorsPreflight { get; }
++ bool AcceptCorsPreflight { get; set; }
+ }
+ public sealed class RouteEndpointBuilder : EndpointBuilder {
+- [UnconditionalSuppressMessageAttribute("Trimmer", "IL2026", Justification="We surface a RequireUnreferencedCode in AddEndpointFilter which is required to call unreferenced code here. The trimmer is unable to infer this.")]
++ public override Endpoint Build();
+ }
+ public sealed class RouteGroupBuilder : IEndpointConventionBuilder, IEndpointRouteBuilder {
++ void IEndpointConventionBuilder.Finally(Action<EndpointBuilder> finalConvention);
+ }
+ public sealed class RouteGroupContext {
++ public RouteGroupContext();
+- public RouteGroupContext(RoutePattern prefix, IReadOnlyList<Action<EndpointBuilder>> conventions, IServiceProvider applicationServices);
+- public IServiceProvider ApplicationServices { get; }
++ public IServiceProvider ApplicationServices { get; set; }
+- public IReadOnlyList<Action<EndpointBuilder>> Conventions { get; }
++ public IReadOnlyList<Action<EndpointBuilder>> Conventions { get; set; }
++ public IReadOnlyList<Action<EndpointBuilder>> FinallyConventions { get; set; }
+- public RoutePattern Prefix { get; }
++ public required RoutePattern Prefix { get; set; }
+ }
+ public class RouteOptions {
+- public IDictionary<string, Type> ConstraintMap { [RequiresUnreferencedCodeAttribute("The linker cannot determine what constraints are being added via the ConstraintMap property. Prefer RouteOptions.SetParameterPolicy instead for setting constraints. This warning can be suppressed if this property is being used to read of delete constraints.")] get; set; }
++ public IDictionary<string, Type> ConstraintMap { [RequiresUnreferencedCodeAttribute("The linker cannot determine what constraints are being added via the ConstraintMap property. Prefer RouteOptions.SetParameterPolicy instead for setting constraints. This warning can be suppressed if this property is being used to read or delete constraints.")] get; set; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Https.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Https.md
new file mode 100644
index 00000000..12e867de
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Https.md
@@ -0,0 +1,10 @@
+# Microsoft.AspNetCore.Server.Kestrel.Https
+
+``` diff
+ namespace Microsoft.AspNetCore.Server.Kestrel.Https {
+ public class HttpsConnectionAdapterOptions {
++ public X509Certificate2Collection ServerCertificateChain { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.md
new file mode 100644
index 00000000..d37e42b7
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.md
@@ -0,0 +1,17 @@
+# Microsoft.AspNetCore.Server.Kestrel.Transport.Quic
+
+``` diff
+ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Quic {
+- public class QuicTransportOptions {
++ public sealed class QuicTransportOptions {
++ public long DefaultCloseErrorCode { get; set; }
++ public long DefaultStreamErrorCode { get; set; }
+- public TimeSpan IdleTimeout { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+- public ushort MaxBidirectionalStreamCount { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public int MaxBidirectionalStreamCount { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+- public ushort MaxUnidirectionalStreamCount { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
++ public int MaxUnidirectionalStreamCount { [CompilerGeneratedAttribute] get; [CompilerGeneratedAttribute] set; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.SignalR.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.SignalR.md
new file mode 100644
index 00000000..f2733cbd
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.AspNetCore.SignalR.md
@@ -0,0 +1,43 @@
+# Microsoft.AspNetCore.SignalR
+
+``` diff
+ namespace Microsoft.AspNetCore.SignalR {
+ public static class ClientProxyExtensions {
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, object arg10, CancellationToken cancellationToken);
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, object arg9, CancellationToken cancellationToken);
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, object arg8, CancellationToken cancellationToken);
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, object arg7, CancellationToken cancellationToken);
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, object arg6, CancellationToken cancellationToken);
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, object arg5, CancellationToken cancellationToken);
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, object arg4, CancellationToken cancellationToken);
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object arg1, object arg2, object arg3, CancellationToken cancellationToken);
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object? arg1, object? arg2, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object? arg1, object? arg2, CancellationToken cancellationToken);
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object? arg1, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, object? arg1, CancellationToken cancellationToken);
+- public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, CancellationToken cancellationToken = default(CancellationToken));
++ public static Task<T> InvokeAsync<T>(this ISingleClientProxy clientProxy, string method, CancellationToken cancellationToken);
+ }
+ public class DefaultHubLifetimeManager<THub> : HubLifetimeManager<THub> where THub : Hub {
+- public override Task<T> InvokeConnectionAsync<T>(string connectionId, string methodName, object?[] args, CancellationToken cancellationToken = default(CancellationToken));
++ public override Task<T> InvokeConnectionAsync<T>(string connectionId, string methodName, object?[] args, CancellationToken cancellationToken);
+ }
+ public abstract class HubLifetimeManager<THub> where THub : Hub {
+- public virtual Task<T> InvokeConnectionAsync<T>(string connectionId, string methodName, object?[] args, CancellationToken cancellationToken = default(CancellationToken));
++ public virtual Task<T> InvokeConnectionAsync<T>(string connectionId, string methodName, object?[] args, CancellationToken cancellationToken);
+ }
+ public interface ISingleClientProxy : IClientProxy {
+- Task<T> InvokeCoreAsync<T>(string method, object?[] args, CancellationToken cancellationToken = default(CancellationToken));
++ Task<T> InvokeCoreAsync<T>(string method, object?[] args, CancellationToken cancellationToken);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Configuration.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Configuration.md
new file mode 100644
index 00000000..f2a7e97d
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Configuration.md
@@ -0,0 +1,44 @@
+# Microsoft.Extensions.Configuration
+
+``` diff
+ namespace Microsoft.Extensions.Configuration {
+ public static class ConfigurationBinder {
+- [RequiresUnreferencedCodeAttribute("Cannot statically analyze the type of instance so its members may be trimmed")]
+- public static void Bind(this IConfiguration configuration, object? instance);
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types.")]
++ [RequiresUnreferencedCodeAttribute("Cannot statically analyze the type of instance so its members may be trimmed")]
++ public static void Bind(this IConfiguration configuration, object? instance);
+- [RequiresUnreferencedCodeAttribute("Cannot statically analyze the type of instance so its members may be trimmed")]
+- public static void Bind(this IConfiguration configuration, object? instance, Action<BinderOptions>? configureOptions);
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types.")]
++ [RequiresUnreferencedCodeAttribute("Cannot statically analyze the type of instance so its members may be trimmed")]
++ public static void Bind(this IConfiguration configuration, object? instance, Action<BinderOptions>? configureOptions);
+- [RequiresUnreferencedCodeAttribute("Cannot statically analyze the type of instance so its members may be trimmed")]
+- public static void Bind(this IConfiguration configuration, string key, object? instance);
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types.")]
++ [RequiresUnreferencedCodeAttribute("Cannot statically analyze the type of instance so its members may be trimmed")]
++ public static void Bind(this IConfiguration configuration, string key, object? instance);
+- [RequiresUnreferencedCodeAttribute("In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed.")]
+- public static object? Get(this IConfiguration configuration, Type type);
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types.")]
++ [RequiresUnreferencedCodeAttribute("In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed.")]
++ public static object? Get(this IConfiguration configuration, Type type);
+- [RequiresUnreferencedCodeAttribute("In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed.")]
+- public static object? Get(this IConfiguration configuration, [DynamicallyAccessedMembersAttribute(-1)] Type type, Action<BinderOptions>? configureOptions);
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types.")]
++ [RequiresUnreferencedCodeAttribute("In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed.")]
++ public static object? Get(this IConfiguration configuration, [DynamicallyAccessedMembersAttribute(-1)] Type type, Action<BinderOptions>? configureOptions);
+- [RequiresUnreferencedCodeAttribute("In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed.")]
+- public static T? Get<T>(this IConfiguration configuration);
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types.")]
++ [RequiresUnreferencedCodeAttribute("In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed.")]
++ public static T? Get<T>(this IConfiguration configuration);
+- [RequiresUnreferencedCodeAttribute("In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed.")]
+- public static T? Get<T>(this IConfiguration configuration, Action<BinderOptions>? configureOptions);
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types.")]
++ [RequiresUnreferencedCodeAttribute("In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed.")]
++ public static T? Get<T>(this IConfiguration configuration, Action<BinderOptions>? configureOptions);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.DependencyInjection.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.DependencyInjection.md
new file mode 100644
index 00000000..0aacefc1
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.DependencyInjection.md
@@ -0,0 +1,71 @@
+# Microsoft.Extensions.DependencyInjection
+
+``` diff
+ namespace Microsoft.Extensions.DependencyInjection {
+- public class DefaultServiceProviderFactory : IServiceProviderFactory<IServiceCollection>
++ [RequiresDynamicCodeAttribute("Using Microsoft.Extensions.DependencyInjection requires generating code dynamically at runtime. For example, when using enumerable and generic ValueType services.")]
++ public class DefaultServiceProviderFactory : IServiceProviderFactory<IServiceCollection>
++ public static class HttpJsonServiceExtensions {
++ public static IServiceCollection ConfigureHttpJsonOptions(this IServiceCollection services, Action<JsonOptions> configureOptions);
++ }
+ public static class OptionsBuilderConfigurationExtensions {
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public static OptionsBuilder<TOptions> Bind<TOptions>(this OptionsBuilder<TOptions> optionsBuilder, IConfiguration config) where TOptions : class;
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public static OptionsBuilder<TOptions> Bind<TOptions>(this OptionsBuilder<TOptions> optionsBuilder, IConfiguration config) where TOptions : class;
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public static OptionsBuilder<TOptions> Bind<TOptions>(this OptionsBuilder<TOptions> optionsBuilder, IConfiguration config, Action<BinderOptions>? configureBinder) where TOptions : class;
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public static OptionsBuilder<TOptions> Bind<TOptions>(this OptionsBuilder<TOptions> optionsBuilder, IConfiguration config, Action<BinderOptions>? configureBinder) where TOptions : class;
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public static OptionsBuilder<TOptions> BindConfiguration<TOptions>(this OptionsBuilder<TOptions> optionsBuilder, string configSectionPath, Action<BinderOptions>? configureBinder = null) where TOptions : class;
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public static OptionsBuilder<TOptions> BindConfiguration<TOptions>(this OptionsBuilder<TOptions> optionsBuilder, string configSectionPath, Action<BinderOptions>? configureBinder = null) where TOptions : class;
+ }
+ public static class OptionsConfigurationServiceCollectionExtensions {
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public static IServiceCollection Configure<TOptions>(this IServiceCollection services, IConfiguration config) where TOptions : class;
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public static IServiceCollection Configure<TOptions>(this IServiceCollection services, IConfiguration config) where TOptions : class;
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public static IServiceCollection Configure<TOptions>(this IServiceCollection services, IConfiguration config, Action<BinderOptions>? configureBinder) where TOptions : class;
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public static IServiceCollection Configure<TOptions>(this IServiceCollection services, IConfiguration config, Action<BinderOptions>? configureBinder) where TOptions : class;
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public static IServiceCollection Configure<TOptions>(this IServiceCollection services, string? name, IConfiguration config) where TOptions : class;
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public static IServiceCollection Configure<TOptions>(this IServiceCollection services, string? name, IConfiguration config) where TOptions : class;
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public static IServiceCollection Configure<TOptions>(this IServiceCollection services, string? name, IConfiguration config, Action<BinderOptions>? configureBinder) where TOptions : class;
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public static IServiceCollection Configure<TOptions>(this IServiceCollection services, string? name, IConfiguration config, Action<BinderOptions>? configureBinder) where TOptions : class;
+ }
+- public static class RouteHandlerJsonServiceExtensions {
+- public static IServiceCollection ConfigureRouteHandlerJsonOptions(this IServiceCollection services, Action<JsonOptions> configureOptions);
+- }
+ public static class ServiceCollectionContainerBuilderExtensions {
+- public static ServiceProvider BuildServiceProvider(this IServiceCollection services);
++ [RequiresDynamicCodeAttribute("Using Microsoft.Extensions.DependencyInjection requires generating code dynamically at runtime. For example, when using enumerable and generic ValueType services.")]
++ public static ServiceProvider BuildServiceProvider(this IServiceCollection services);
+- public static ServiceProvider BuildServiceProvider(this IServiceCollection services, ServiceProviderOptions options);
++ [RequiresDynamicCodeAttribute("Using Microsoft.Extensions.DependencyInjection requires generating code dynamically at runtime. For example, when using enumerable and generic ValueType services.")]
++ public static ServiceProvider BuildServiceProvider(this IServiceCollection services, ServiceProviderOptions options);
+- public static ServiceProvider BuildServiceProvider(this IServiceCollection services, bool validateScopes);
++ [RequiresDynamicCodeAttribute("Using Microsoft.Extensions.DependencyInjection requires generating code dynamically at runtime. For example, when using enumerable and generic ValueType services.")]
++ public static ServiceProvider BuildServiceProvider(this IServiceCollection services, bool validateScopes);
+ }
+ public static class ServiceProviderServiceExtensions {
+- public static IEnumerable<object?> GetServices(this IServiceProvider provider, Type serviceType);
++ [RequiresDynamicCodeAttribute("The native code for an IEnumerable<serviceType> might not be available at runtime.")]
++ public static IEnumerable<object?> GetServices(this IServiceProvider provider, Type serviceType);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Hosting.Internal.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Hosting.Internal.md
new file mode 100644
index 00000000..b65c6e34
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Hosting.Internal.md
@@ -0,0 +1,11 @@
+# Microsoft.Extensions.Hosting.Internal
+
+``` diff
+ namespace Microsoft.Extensions.Hosting.Internal {
+ public class HostingEnvironment : IHostEnvironment, IHostingEnvironment {
+- public string? ApplicationName { get; set; }
++ public string ApplicationName { get; set; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Hosting.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Hosting.md
new file mode 100644
index 00000000..208b63e8
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Hosting.md
@@ -0,0 +1,57 @@
+# Microsoft.Extensions.Hosting
+
+``` diff
+ namespace Microsoft.Extensions.Hosting {
+ public static class Host {
+- public static HostApplicationBuilder CreateApplicationBuilder();
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public static HostApplicationBuilder CreateApplicationBuilder();
+- public static HostApplicationBuilder CreateApplicationBuilder(string[]? args);
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public static HostApplicationBuilder CreateApplicationBuilder(string[]? args);
+- public static IHostBuilder CreateDefaultBuilder();
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public static IHostBuilder CreateDefaultBuilder();
+- public static IHostBuilder CreateDefaultBuilder(string[]? args);
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public static IHostBuilder CreateDefaultBuilder(string[]? args);
+ }
+ public sealed class HostApplicationBuilder {
+- public HostApplicationBuilder();
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public HostApplicationBuilder();
+- public HostApplicationBuilder(HostApplicationBuilderSettings? settings);
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public HostApplicationBuilder(HostApplicationBuilderSettings? settings);
+- public HostApplicationBuilder(string[]? args);
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public HostApplicationBuilder(string[]? args);
+ }
+ public class HostBuilder : IHostBuilder {
+- public HostBuilder();
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public HostBuilder();
+ }
+ public static class HostingHostBuilderExtensions {
+- public static IHostBuilder ConfigureDefaults(this IHostBuilder builder, string[]? args);
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public static IHostBuilder ConfigureDefaults(this IHostBuilder builder, string[]? args);
+- public static IHostBuilder UseDefaultServiceProvider(this IHostBuilder hostBuilder, Action<ServiceProviderOptions> configure);
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public static IHostBuilder UseDefaultServiceProvider(this IHostBuilder hostBuilder, Action<ServiceProviderOptions> configure);
+- public static IHostBuilder UseDefaultServiceProvider(this IHostBuilder hostBuilder, Action<HostBuilderContext, ServiceProviderOptions> configure);
++ [RequiresDynamicCodeAttribute("Hosting uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public static IHostBuilder UseDefaultServiceProvider(this IHostBuilder hostBuilder, Action<HostBuilderContext, ServiceProviderOptions> configure);
+ }
+ public interface IHostEnvironment {
+- string? ApplicationName { get; set; }
++ string ApplicationName { get; set; }
+ }
+ [ObsoleteAttribute("IHostingEnvironment has been deprecated. Use Microsoft.Extensions.Hosting.IHostEnvironment instead.")]
+ public interface IHostingEnvironment {
+- string? ApplicationName { get; set; }
++ string ApplicationName { get; set; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Logging.Configuration.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Logging.Configuration.md
new file mode 100644
index 00000000..0180f2b3
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Logging.Configuration.md
@@ -0,0 +1,14 @@
+# Microsoft.Extensions.Logging.Configuration
+
+``` diff
+ namespace Microsoft.Extensions.Logging.Configuration {
+ public static class LoggerProviderOptions {
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public static void RegisterProviderOptions<TOptions, TProvider>(IServiceCollection services) where TOptions : class;
++ [RequiresDynamicCodeAttribute("Binding TOptions to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public static void RegisterProviderOptions<TOptions, TProvider>(IServiceCollection services) where TOptions : class;
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Logging.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Logging.md
new file mode 100644
index 00000000..ffa51ae3
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Logging.md
@@ -0,0 +1,25 @@
+# Microsoft.Extensions.Logging
+
+``` diff
+ namespace Microsoft.Extensions.Logging {
+ [UnsupportedOSPlatformAttribute("browser")]
+ public static class ConsoleLoggerExtensions {
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public static ILoggingBuilder AddConsoleFormatter<TFormatter, TOptions>(this ILoggingBuilder builder) where TFormatter : ConsoleFormatter where TOptions : ConsoleFormatterOptions;
++ [RequiresDynamicCodeAttribute("Binding TOptions to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public static ILoggingBuilder AddConsoleFormatter<TFormatter, TOptions>(this ILoggingBuilder builder) where TFormatter : ConsoleFormatter where TOptions : ConsoleFormatterOptions;
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public static ILoggingBuilder AddConsoleFormatter<TFormatter, TOptions>(this ILoggingBuilder builder, Action<TOptions> configure) where TFormatter : ConsoleFormatter where TOptions : ConsoleFormatterOptions;
++ [RequiresDynamicCodeAttribute("Binding TOptions to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public static ILoggingBuilder AddConsoleFormatter<TFormatter, TOptions>(this ILoggingBuilder builder, Action<TOptions> configure) where TFormatter : ConsoleFormatter where TOptions : ConsoleFormatterOptions;
+ }
+ public class LoggerFactory : IDisposable, ILoggerFactory {
+- public static ILoggerFactory Create(Action<ILoggingBuilder> configure);
++ [RequiresDynamicCodeAttribute("LoggerFactory.Create uses Microsoft.Extensions.DependencyInjection, which may require generating code dynamically at runtime.")]
++ public static ILoggerFactory Create(Action<ILoggingBuilder> configure);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.ObjectPool.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.ObjectPool.md
new file mode 100644
index 00000000..e62586d7
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.ObjectPool.md
@@ -0,0 +1,13 @@
+# Microsoft.Extensions.ObjectPool
+
+``` diff
+ namespace Microsoft.Extensions.ObjectPool {
+- public class LeakTrackingObjectPool<T> : ObjectPool<T> where T : class
++ [ObsoleteAttribute("LeakTrackingObjectPool<T> was only intended for internal use in diagnostic builds of .NET. It never functioned in publicly shipped .NET versions and may be removed in a future release.")]
++ public class LeakTrackingObjectPool<T> : ObjectPool<T> where T : class
+- public class LeakTrackingObjectPoolProvider : ObjectPoolProvider
++ [ObsoleteAttribute("LeakTrackingObjectPoolProvider was only intended for internal use in diagnostic builds of .NET. It never functioned in publicly shipped .NET versions and may be removed in a future release.")]
++ public class LeakTrackingObjectPoolProvider : ObjectPoolProvider
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Options.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Options.md
new file mode 100644
index 00000000..3b6d4fe5
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.Extensions.Options.md
@@ -0,0 +1,26 @@
+# Microsoft.Extensions.Options
+
+``` diff
+ namespace Microsoft.Extensions.Options {
+ public class ConfigureFromConfigurationOptions<TOptions> : ConfigureOptions<TOptions> where TOptions : class {
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public ConfigureFromConfigurationOptions(IConfiguration config);
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public ConfigureFromConfigurationOptions(IConfiguration config);
+ }
+ public class NamedConfigureFromConfigurationOptions<TOptions> : ConfigureNamedOptions<TOptions> where TOptions : class {
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public NamedConfigureFromConfigurationOptions(string? name, IConfiguration config);
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public NamedConfigureFromConfigurationOptions(string? name, IConfiguration config);
+- [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
+- public NamedConfigureFromConfigurationOptions(string? name, IConfiguration config, Action<BinderOptions>? configureBinder);
++ [RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values may require generating dynamic code at runtime.")]
++ [RequiresUnreferencedCodeAttribute("TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.")]
++ public NamedConfigureFromConfigurationOptions(string? name, IConfiguration config, Action<BinderOptions>? configureBinder);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.JSInterop.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.JSInterop.md
new file mode 100644
index 00000000..f483b145
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_Microsoft.JSInterop.md
@@ -0,0 +1,35 @@
+# Microsoft.JSInterop
+
+``` diff
+ namespace Microsoft.JSInterop {
+ public interface IJSUnmarshalledObjectReference : IAsyncDisposable, IDisposable, IJSInProcessObjectReference, IJSObjectReference {
+- TResult InvokeUnmarshalled<T0, T1, T2, TResult>(string identifier, T0 arg0, T1 arg1, T2 arg2);
++ [ObsoleteAttribute("This method is obsolete. Use JSImportAttribute instead.")]
++ TResult InvokeUnmarshalled<T0, T1, T2, TResult>(string identifier, T0 arg0, T1 arg1, T2 arg2);
+- TResult InvokeUnmarshalled<T0, T1, TResult>(string identifier, T0 arg0, T1 arg1);
++ [ObsoleteAttribute("This method is obsolete. Use JSImportAttribute instead.")]
++ TResult InvokeUnmarshalled<T0, T1, TResult>(string identifier, T0 arg0, T1 arg1);
+- TResult InvokeUnmarshalled<T0, TResult>(string identifier, T0 arg0);
++ [ObsoleteAttribute("This method is obsolete. Use JSImportAttribute instead.")]
++ TResult InvokeUnmarshalled<T0, TResult>(string identifier, T0 arg0);
+- TResult InvokeUnmarshalled<TResult>(string identifier);
++ [ObsoleteAttribute("This method is obsolete. Use JSImportAttribute instead.")]
++ TResult InvokeUnmarshalled<TResult>(string identifier);
+ }
+ public interface IJSUnmarshalledRuntime {
+- TResult InvokeUnmarshalled<T0, T1, T2, TResult>(string identifier, T0 arg0, T1 arg1, T2 arg2);
++ [ObsoleteAttribute("This method is obsolete. Use JSImportAttribute instead.")]
++ TResult InvokeUnmarshalled<T0, T1, T2, TResult>(string identifier, T0 arg0, T1 arg1, T2 arg2);
+- TResult InvokeUnmarshalled<T0, T1, TResult>(string identifier, T0 arg0, T1 arg1);
++ [ObsoleteAttribute("This method is obsolete. Use JSImportAttribute instead.")]
++ TResult InvokeUnmarshalled<T0, T1, TResult>(string identifier, T0 arg0, T1 arg1);
+- TResult InvokeUnmarshalled<T0, TResult>(string identifier, T0 arg0);
++ [ObsoleteAttribute("This method is obsolete. Use JSImportAttribute instead.")]
++ TResult InvokeUnmarshalled<T0, TResult>(string identifier, T0 arg0);
+- TResult InvokeUnmarshalled<TResult>(string identifier);
++ [ObsoleteAttribute("This method is obsolete. Use JSImportAttribute instead.")]
++ TResult InvokeUnmarshalled<TResult>(string identifier);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_System.Diagnostics.Eventing.Reader.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_System.Diagnostics.Eventing.Reader.md
new file mode 100644
index 00000000..845387d4
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_System.Diagnostics.Eventing.Reader.md
@@ -0,0 +1,12 @@
+# System.Diagnostics.Eventing.Reader
+
+``` diff
+ namespace System.Diagnostics.Eventing.Reader {
+- public class EventBookmark {
++ public sealed class EventBookmark {
++ public EventBookmark(string bookmarkXml);
++ public string BookmarkXml { get; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_System.Threading.RateLimiting.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_System.Threading.RateLimiting.md
new file mode 100644
index 00000000..24de4da4
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.AspNetCore.App/7.0-rc1_System.Threading.RateLimiting.md
@@ -0,0 +1,169 @@
+# System.Threading.RateLimiting
+
+``` diff
++namespace System.Threading.RateLimiting {
++ public sealed class ConcurrencyLimiter : RateLimiter {
++ public ConcurrencyLimiter(ConcurrencyLimiterOptions options);
++ public override TimeSpan? IdleDuration { get; }
++ protected override ValueTask<RateLimitLease> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken = default(CancellationToken));
++ protected override RateLimitLease AttemptAcquireCore(int permitCount);
++ protected override void Dispose(bool disposing);
++ protected override ValueTask DisposeAsyncCore();
++ public override RateLimiterStatistics? GetStatistics();
++ }
++ public sealed class ConcurrencyLimiterOptions {
++ public ConcurrencyLimiterOptions();
++ public int PermitLimit { get; set; }
++ public int QueueLimit { get; set; }
++ public QueueProcessingOrder QueueProcessingOrder { get; set; }
++ }
++ public sealed class FixedWindowRateLimiter : ReplenishingRateLimiter {
++ public FixedWindowRateLimiter(FixedWindowRateLimiterOptions options);
++ public override TimeSpan? IdleDuration { get; }
++ public override bool IsAutoReplenishing { get; }
++ public override TimeSpan ReplenishmentPeriod { get; }
++ protected override ValueTask<RateLimitLease> AcquireAsyncCore(int requestCount, CancellationToken cancellationToken = default(CancellationToken));
++ protected override RateLimitLease AttemptAcquireCore(int requestCount);
++ protected override void Dispose(bool disposing);
++ protected override ValueTask DisposeAsyncCore();
++ public override RateLimiterStatistics? GetStatistics();
++ public override bool TryReplenish();
++ }
++ public sealed class FixedWindowRateLimiterOptions {
++ public FixedWindowRateLimiterOptions();
++ public bool AutoReplenishment { get; set; }
++ public int PermitLimit { get; set; }
++ public int QueueLimit { get; set; }
++ public QueueProcessingOrder QueueProcessingOrder { get; set; }
++ public TimeSpan Window { get; set; }
++ }
++ public static class MetadataName {
++ public static MetadataName<string> ReasonPhrase { get; }
++ public static MetadataName<TimeSpan> RetryAfter { get; }
++ public static MetadataName<T> Create<T>(string name);
++ }
++ public sealed class MetadataName<T> : IEquatable<MetadataName<T>> {
++ public MetadataName(string name);
++ public string Name { get; }
++ public override bool Equals([NotNullWhenAttribute(true)] object? obj);
++ public bool Equals(MetadataName<T>? other);
++ public override int GetHashCode();
++ public static bool operator ==(MetadataName<T> left, MetadataName<T> right);
++ public static bool operator !=(MetadataName<T> left, MetadataName<T> right);
++ public override string ToString();
++ }
++ public static class PartitionedRateLimiter {
++ public static PartitionedRateLimiter<TResource> Create<TResource, TPartitionKey>(Func<TResource, RateLimitPartition<TPartitionKey>> partitioner, IEqualityComparer<TPartitionKey>? equalityComparer = null);
++ public static PartitionedRateLimiter<TResource> CreateChained<TResource>(params PartitionedRateLimiter<TResource>[] limiters);
++ }
++ public abstract class PartitionedRateLimiter<TResource> : IAsyncDisposable, IDisposable {
++ protected PartitionedRateLimiter();
++ public ValueTask<RateLimitLease> AcquireAsync(TResource resource, int permitCount = 1, CancellationToken cancellationToken = default(CancellationToken));
++ protected abstract ValueTask<RateLimitLease> AcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken);
++ public RateLimitLease AttemptAcquire(TResource resource, int permitCount = 1);
++ protected abstract RateLimitLease AttemptAcquireCore(TResource resource, int permitCount);
++ public void Dispose();
++ protected virtual void Dispose(bool disposing);
++ public ValueTask DisposeAsync();
++ protected virtual ValueTask DisposeAsyncCore();
++ public abstract RateLimiterStatistics? GetStatistics(TResource resource);
++ public PartitionedRateLimiter<TOuter> WithTranslatedKey<TOuter>(Func<TOuter, TResource> keyAdapter, bool leaveOpen);
++ }
++ public enum QueueProcessingOrder {
++ NewestFirst = 1,
++ OldestFirst = 0,
++ }
++ public abstract class RateLimiter : IAsyncDisposable, IDisposable {
++ protected RateLimiter();
++ public abstract TimeSpan? IdleDuration { get; }
++ public ValueTask<RateLimitLease> AcquireAsync(int permitCount = 1, CancellationToken cancellationToken = default(CancellationToken));
++ protected abstract ValueTask<RateLimitLease> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken);
++ public RateLimitLease AttemptAcquire(int permitCount = 1);
++ protected abstract RateLimitLease AttemptAcquireCore(int permitCount);
++ public void Dispose();
++ protected virtual void Dispose(bool disposing);
++ public ValueTask DisposeAsync();
++ protected virtual ValueTask DisposeAsyncCore();
++ public abstract RateLimiterStatistics? GetStatistics();
++ }
++ public class RateLimiterStatistics {
++ public RateLimiterStatistics();
++ public long CurrentAvailablePermits { get; set; }
++ public long CurrentQueuedCount { get; set; }
++ public long TotalFailedLeases { get; set; }
++ public long TotalSuccessfulLeases { get; set; }
++ }
++ public abstract class RateLimitLease : IDisposable {
++ protected RateLimitLease();
++ public abstract bool IsAcquired { get; }
++ public abstract IEnumerable<string> MetadataNames { get; }
++ public void Dispose();
++ protected virtual void Dispose(bool disposing);
++ public virtual IEnumerable<KeyValuePair<string, object?>> GetAllMetadata();
++ public abstract bool TryGetMetadata(string metadataName, out object? metadata);
++ public bool TryGetMetadata<T>(MetadataName<T> metadataName, [MaybeNullAttribute] out T metadata);
++ }
++ public static class RateLimitPartition {
++ public static RateLimitPartition<TKey> Get<TKey>(TKey partitionKey, Func<TKey, RateLimiter> factory);
++ public static RateLimitPartition<TKey> GetConcurrencyLimiter<TKey>(TKey partitionKey, Func<TKey, ConcurrencyLimiterOptions> factory);
++ public static RateLimitPartition<TKey> GetFixedWindowLimiter<TKey>(TKey partitionKey, Func<TKey, FixedWindowRateLimiterOptions> factory);
++ public static RateLimitPartition<TKey> GetNoLimiter<TKey>(TKey partitionKey);
++ public static RateLimitPartition<TKey> GetSlidingWindowLimiter<TKey>(TKey partitionKey, Func<TKey, SlidingWindowRateLimiterOptions> factory);
++ public static RateLimitPartition<TKey> GetTokenBucketLimiter<TKey>(TKey partitionKey, Func<TKey, TokenBucketRateLimiterOptions> factory);
++ }
++ public struct RateLimitPartition<TKey> {
++ public RateLimitPartition(TKey partitionKey, Func<TKey, RateLimiter> factory);
++ public Func<TKey, RateLimiter> Factory { get; }
++ public TKey PartitionKey { get; }
++ }
++ public abstract class ReplenishingRateLimiter : RateLimiter {
++ protected ReplenishingRateLimiter();
++ public abstract bool IsAutoReplenishing { get; }
++ public abstract TimeSpan ReplenishmentPeriod { get; }
++ public abstract bool TryReplenish();
++ }
++ public sealed class SlidingWindowRateLimiter : ReplenishingRateLimiter {
++ public SlidingWindowRateLimiter(SlidingWindowRateLimiterOptions options);
++ public override TimeSpan? IdleDuration { get; }
++ public override bool IsAutoReplenishing { get; }
++ public override TimeSpan ReplenishmentPeriod { get; }
++ protected override ValueTask<RateLimitLease> AcquireAsyncCore(int requestCount, CancellationToken cancellationToken = default(CancellationToken));
++ protected override RateLimitLease AttemptAcquireCore(int requestCount);
++ protected override void Dispose(bool disposing);
++ protected override ValueTask DisposeAsyncCore();
++ public override RateLimiterStatistics? GetStatistics();
++ public override bool TryReplenish();
++ }
++ public sealed class SlidingWindowRateLimiterOptions {
++ public SlidingWindowRateLimiterOptions();
++ public bool AutoReplenishment { get; set; }
++ public int PermitLimit { get; set; }
++ public int QueueLimit { get; set; }
++ public QueueProcessingOrder QueueProcessingOrder { get; set; }
++ public int SegmentsPerWindow { get; set; }
++ public TimeSpan Window { get; set; }
++ }
++ public sealed class TokenBucketRateLimiter : ReplenishingRateLimiter {
++ public TokenBucketRateLimiter(TokenBucketRateLimiterOptions options);
++ public override TimeSpan? IdleDuration { get; }
++ public override bool IsAutoReplenishing { get; }
++ public override TimeSpan ReplenishmentPeriod { get; }
++ protected override ValueTask<RateLimitLease> AcquireAsyncCore(int tokenCount, CancellationToken cancellationToken = default(CancellationToken));
++ protected override RateLimitLease AttemptAcquireCore(int tokenCount);
++ protected override void Dispose(bool disposing);
++ protected override ValueTask DisposeAsyncCore();
++ public override RateLimiterStatistics? GetStatistics();
++ public override bool TryReplenish();
++ }
++ public sealed class TokenBucketRateLimiterOptions {
++ public TokenBucketRateLimiterOptions();
++ public bool AutoReplenishment { get; set; }
++ public int QueueLimit { get; set; }
++ public QueueProcessingOrder QueueProcessingOrder { get; set; }
++ public TimeSpan ReplenishmentPeriod { get; set; }
++ public int TokenLimit { get; set; }
++ public int TokensPerPeriod { get; set; }
++ }
++}
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1.md
new file mode 100644
index 00000000..4d6959cc
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1.md
@@ -0,0 +1,35 @@
+# API Difference 7.0-preview7 vs 7.0-rc1
+
+API listing follows standard diff formatting.
+Lines preceded by a '+' are additions and a '-' indicates removal.
+
+* [Microsoft.Win32](7.0-rc1_Microsoft.Win32.md)
+* [System](7.0-rc1_System.md)
+* [System.Buffers](7.0-rc1_System.Buffers.md)
+* [System.ComponentModel](7.0-rc1_System.ComponentModel.md)
+* [System.Data.SqlTypes](7.0-rc1_System.Data.SqlTypes.md)
+* [System.Diagnostics](7.0-rc1_System.Diagnostics.md)
+* [System.Diagnostics.CodeAnalysis](7.0-rc1_System.Diagnostics.CodeAnalysis.md)
+* [System.Formats.Asn1](7.0-rc1_System.Formats.Asn1.md)
+* [System.IO](7.0-rc1_System.IO.md)
+* [System.Linq](7.0-rc1_System.Linq.md)
+* [System.Net.Http.Json](7.0-rc1_System.Net.Http.Json.md)
+* [System.Net.NetworkInformation](7.0-rc1_System.Net.NetworkInformation.md)
+* [System.Numerics](7.0-rc1_System.Numerics.md)
+* [System.Reflection](7.0-rc1_System.Reflection.md)
+* [System.Reflection.Emit](7.0-rc1_System.Reflection.Emit.md)
+* [System.Runtime](7.0-rc1_System.Runtime.md)
+* [System.Runtime.InteropServices](7.0-rc1_System.Runtime.InteropServices.md)
+* [System.Runtime.Serialization](7.0-rc1_System.Runtime.Serialization.md)
+* [System.Runtime.Serialization.DataContracts](7.0-rc1_System.Runtime.Serialization.DataContracts.md)
+* [System.Runtime.Serialization.Json](7.0-rc1_System.Runtime.Serialization.Json.md)
+* [System.Runtime.Versioning](7.0-rc1_System.Runtime.Versioning.md)
+* [System.Security.Cryptography](7.0-rc1_System.Security.Cryptography.md)
+* [System.Security.Cryptography.X509Certificates](7.0-rc1_System.Security.Cryptography.X509Certificates.md)
+* [System.Text.Json.Serialization](7.0-rc1_System.Text.Json.Serialization.md)
+* [System.Text.Json.Serialization.Metadata](7.0-rc1_System.Text.Json.Serialization.Metadata.md)
+* [System.Text.RegularExpressions](7.0-rc1_System.Text.RegularExpressions.md)
+* [System.Transactions](7.0-rc1_System.Transactions.md)
+* [System.Xml](7.0-rc1_System.Xml.md)
+* [System.Xml.Serialization](7.0-rc1_System.Xml.Serialization.md)
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_Microsoft.Win32.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_Microsoft.Win32.md
new file mode 100644
index 00000000..b5c47f5e
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_Microsoft.Win32.md
@@ -0,0 +1,15 @@
+# Microsoft.Win32
+
+``` diff
+ namespace Microsoft.Win32 {
+ public sealed class RegistryKey : MarshalByRefObject, IDisposable {
+- public object? GetValue(string? name, object? defaultValue);
++ [return: NotNullIfNotNullAttribute("defaultValue")]
++ public object? GetValue(string? name, object? defaultValue);
+- public object? GetValue(string? name, object? defaultValue, RegistryValueOptions options);
++ [return: NotNullIfNotNullAttribute("defaultValue")]
++ public object? GetValue(string? name, object? defaultValue, RegistryValueOptions options);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Buffers.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Buffers.md
new file mode 100644
index 00000000..7ba827a4
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Buffers.md
@@ -0,0 +1,11 @@
+# System.Buffers
+
+``` diff
+ namespace System.Buffers {
+ public static class BuffersExtensions {
+- public static SequencePosition? PositionOf<T>(this in ReadOnlySequence<T> source, T value) where T : IEquatable<T>;
++ public static SequencePosition? PositionOf<T>(this in ReadOnlySequence<T> source, T value) where T : IEquatable<T>?;
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.ComponentModel.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.ComponentModel.md
new file mode 100644
index 00000000..b728bf88
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.ComponentModel.md
@@ -0,0 +1,11 @@
+# System.ComponentModel
+
+``` diff
+ namespace System.ComponentModel {
+ public interface ICustomTypeDescriptor {
+- TypeConverter GetConverter();
++ TypeConverter? GetConverter();
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Data.SqlTypes.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Data.SqlTypes.md
new file mode 100644
index 00000000..73507022
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Data.SqlTypes.md
@@ -0,0 +1,21 @@
+# System.Data.SqlTypes
+
+``` diff
+ namespace System.Data.SqlTypes {
+ [XmlSchemaProviderAttribute("GetXsdType")]
+ public struct SqlBinary : IComparable, IEquatable<SqlBinary>, INullable, IXmlSerializable {
++ public static SqlBinary WrapBytes(byte[] bytes);
+ }
+ [XmlSchemaProviderAttribute("GetXsdType")]
+ public struct SqlDecimal : IComparable, IEquatable<SqlDecimal>, INullable, IXmlSerializable {
++ [CLSCompliantAttribute(false)]
++ public int WriteTdsValue(Span<uint> destination);
+ }
+ [XmlSchemaProviderAttribute("GetXsdType")]
+ public struct SqlMoney : IComparable, IEquatable<SqlMoney>, INullable, IXmlSerializable {
++ public static SqlMoney FromTdsValue(long value);
++ public long GetTdsValue();
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Diagnostics.CodeAnalysis.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Diagnostics.CodeAnalysis.md
new file mode 100644
index 00000000..fae0acb8
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Diagnostics.CodeAnalysis.md
@@ -0,0 +1,10 @@
+# System.Diagnostics.CodeAnalysis
+
+``` diff
+ namespace System.Diagnostics.CodeAnalysis {
++ public sealed class UnscopedRefAttribute : Attribute {
++ public UnscopedRefAttribute();
++ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Diagnostics.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Diagnostics.md
new file mode 100644
index 00000000..ae5aea0a
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Diagnostics.md
@@ -0,0 +1,55 @@
+# System.Diagnostics
+
+``` diff
+ namespace System.Diagnostics {
+ public class DiagnosticListener : DiagnosticSource, IDisposable, IObservable<KeyValuePair<string, object?>> {
+- public override void Write(string name, object? value);
++ [RequiresDynamicCodeAttribute("DiagnosticSource may require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public override void Write(string name, object? value);
+ }
+ public abstract class DiagnosticSource {
+- public Activity StartActivity(Activity activity, object? args);
++ [RequiresDynamicCodeAttribute("DiagnosticSource may require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public Activity StartActivity(Activity activity, object? args);
+- public void StopActivity(Activity activity, object? args);
++ [RequiresDynamicCodeAttribute("DiagnosticSource may require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public void StopActivity(Activity activity, object? args);
+- public abstract void Write(string name, object? value);
++ [RequiresDynamicCodeAttribute("DiagnosticSource may require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public abstract void Write(string name, object? value);
+ }
++ public sealed class InitializingSwitchEventArgs : EventArgs {
++ public InitializingSwitchEventArgs(Switch @switch);
++ public Switch Switch { get; }
++ }
++ public sealed class InitializingTraceSourceEventArgs : EventArgs {
++ public InitializingTraceSourceEventArgs(TraceSource traceSource);
++ public TraceSource TraceSource { get; }
++ public bool WasInitialized { get; set; }
++ }
+ public class Process : Component, IDisposable {
+- [UnsupportedOSPlatformAttribute("ios")]
+- [UnsupportedOSPlatformAttribute("tvos")]
+- public TimeSpan PrivilegedProcessorTime { get; }
++ [SupportedOSPlatformAttribute("maccatalyst")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public TimeSpan PrivilegedProcessorTime { get; }
+ }
+ public abstract class Switch {
++ public string DefaultValue { get; }
+- protected string Value { get; set; }
++ public string Value { get; set; }
++ public static event EventHandler<InitializingSwitchEventArgs>? Initializing;
++ public void Refresh();
+ }
+ public sealed class Trace {
++ public static event EventHandler Refreshing;
+ }
+ public class TraceSource {
++ public SourceLevels DefaultLevel { get; }
++ public static event EventHandler<InitializingTraceSourceEventArgs>? Initializing;
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Formats.Asn1.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Formats.Asn1.md
new file mode 100644
index 00000000..50ae13a1
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Formats.Asn1.md
@@ -0,0 +1,10 @@
+# System.Formats.Asn1
+
+``` diff
+ namespace System.Formats.Asn1 {
+ public sealed class AsnWriter {
++ public AsnWriter(AsnEncodingRules ruleSet, int initialCapacity);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.IO.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.IO.md
new file mode 100644
index 00000000..28e09416
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.IO.md
@@ -0,0 +1,10 @@
+# System.IO
+
+``` diff
+ namespace System.IO {
+ public static class Directory {
++ public static DirectoryInfo CreateTempSubdirectory(string? prefix = null);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Linq.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Linq.md
new file mode 100644
index 00000000..cd487370
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Linq.md
@@ -0,0 +1,423 @@
+# System.Linq
+
+``` diff
+ namespace System.Linq {
+- public class EnumerableQuery<T> : EnumerableQuery, IEnumerable, IEnumerable<T>, IOrderedQueryable, IOrderedQueryable<T>, IQueryable, IQueryable<T>, IQueryProvider
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public class EnumerableQuery<T> : EnumerableQuery, IEnumerable, IEnumerable<T>, IOrderedQueryable, IOrderedQueryable<T>, IQueryable, IQueryable<T>, IQueryProvider
+ public static class Queryable {
+- public static TResult Aggregate<TSource, TAccumulate, TResult>(this IQueryable<TSource> source, TAccumulate seed, Expression<Func<TAccumulate, TSource, TAccumulate>> func, Expression<Func<TAccumulate, TResult>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TResult Aggregate<TSource, TAccumulate, TResult>(this IQueryable<TSource> source, TAccumulate seed, Expression<Func<TAccumulate, TSource, TAccumulate>> func, Expression<Func<TAccumulate, TResult>> selector);
+- public static TAccumulate Aggregate<TSource, TAccumulate>(this IQueryable<TSource> source, TAccumulate seed, Expression<Func<TAccumulate, TSource, TAccumulate>> func);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TAccumulate Aggregate<TSource, TAccumulate>(this IQueryable<TSource> source, TAccumulate seed, Expression<Func<TAccumulate, TSource, TAccumulate>> func);
+- public static TSource Aggregate<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, TSource, TSource>> func);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource Aggregate<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, TSource, TSource>> func);
+- public static bool All<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static bool All<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static bool Any<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static bool Any<TSource>(this IQueryable<TSource> source);
+- public static bool Any<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static bool Any<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static IQueryable<TSource> Append<TSource>(this IQueryable<TSource> source, TSource element);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Append<TSource>(this IQueryable<TSource> source, TSource element);
+- public static IQueryable AsQueryable(this IEnumerable source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable AsQueryable(this IEnumerable source);
+- public static IQueryable<TElement> AsQueryable<TElement>(this IEnumerable<TElement> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TElement> AsQueryable<TElement>(this IEnumerable<TElement> source);
+- public static decimal Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, decimal>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static decimal Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, decimal>> selector);
+- public static double Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, double>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static double Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, double>> selector);
+- public static double Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static double Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int>> selector);
+- public static double Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, long>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static double Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, long>> selector);
+- public static decimal? Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, decimal?>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static decimal? Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, decimal?>> selector);
+- public static double? Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, double?>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static double? Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, double?>> selector);
+- public static double? Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int?>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static double? Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int?>> selector);
+- public static double? Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, long?>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static double? Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, long?>> selector);
+- public static float? Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, float?>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static float? Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, float?>> selector);
+- public static float Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, float>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static float Average<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, float>> selector);
+- public static IQueryable<TResult> Cast<TResult>(this IQueryable source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> Cast<TResult>(this IQueryable source);
+- public static IQueryable<TSource[]> Chunk<TSource>(this IQueryable<TSource> source, int size);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource[]> Chunk<TSource>(this IQueryable<TSource> source, int size);
+- public static IQueryable<TSource> Concat<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Concat<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);
+- public static bool Contains<TSource>(this IQueryable<TSource> source, TSource item);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static bool Contains<TSource>(this IQueryable<TSource> source, TSource item);
+- public static bool Contains<TSource>(this IQueryable<TSource> source, TSource item, IEqualityComparer<TSource>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static bool Contains<TSource>(this IQueryable<TSource> source, TSource item, IEqualityComparer<TSource>? comparer);
+- public static int Count<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static int Count<TSource>(this IQueryable<TSource> source);
+- public static int Count<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static int Count<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static IQueryable<TSource?> DefaultIfEmpty<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource?> DefaultIfEmpty<TSource>(this IQueryable<TSource> source);
+- public static IQueryable<TSource> DefaultIfEmpty<TSource>(this IQueryable<TSource> source, TSource defaultValue);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> DefaultIfEmpty<TSource>(this IQueryable<TSource> source, TSource defaultValue);
+- public static IQueryable<TSource> Distinct<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Distinct<TSource>(this IQueryable<TSource> source);
+- public static IQueryable<TSource> Distinct<TSource>(this IQueryable<TSource> source, IEqualityComparer<TSource>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Distinct<TSource>(this IQueryable<TSource> source, IEqualityComparer<TSource>? comparer);
+- public static IQueryable<TSource> DistinctBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> DistinctBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
+- public static IQueryable<TSource> DistinctBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> DistinctBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer);
+- public static TSource ElementAt<TSource>(this IQueryable<TSource> source, Index index);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource ElementAt<TSource>(this IQueryable<TSource> source, Index index);
+- public static TSource ElementAt<TSource>(this IQueryable<TSource> source, int index);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource ElementAt<TSource>(this IQueryable<TSource> source, int index);
+- public static TSource? ElementAtOrDefault<TSource>(this IQueryable<TSource> source, Index index);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? ElementAtOrDefault<TSource>(this IQueryable<TSource> source, Index index);
+- public static TSource? ElementAtOrDefault<TSource>(this IQueryable<TSource> source, int index);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? ElementAtOrDefault<TSource>(this IQueryable<TSource> source, int index);
+- public static IQueryable<TSource> Except<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Except<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);
+- public static IQueryable<TSource> Except<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Except<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer);
+- public static IQueryable<TSource> ExceptBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TKey> source2, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> ExceptBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TKey> source2, Expression<Func<TSource, TKey>> keySelector);
+- public static IQueryable<TSource> ExceptBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TKey> source2, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> ExceptBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TKey> source2, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer);
+- public static TSource First<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource First<TSource>(this IQueryable<TSource> source);
+- public static TSource First<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource First<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static TSource? FirstOrDefault<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? FirstOrDefault<TSource>(this IQueryable<TSource> source);
+- public static TSource? FirstOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? FirstOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static TSource FirstOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate, TSource defaultValue);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource FirstOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate, TSource defaultValue);
+- public static TSource FirstOrDefault<TSource>(this IQueryable<TSource> source, TSource defaultValue);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource FirstOrDefault<TSource>(this IQueryable<TSource> source, TSource defaultValue);
+- public static IQueryable<TResult> GroupBy<TSource, TKey, TElement, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector, Expression<Func<TKey, IEnumerable<TElement>, TResult>> resultSelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> GroupBy<TSource, TKey, TElement, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector, Expression<Func<TKey, IEnumerable<TElement>, TResult>> resultSelector);
+- public static IQueryable<TResult> GroupBy<TSource, TKey, TElement, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector, Expression<Func<TKey, IEnumerable<TElement>, TResult>> resultSelector, IEqualityComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> GroupBy<TSource, TKey, TElement, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector, Expression<Func<TKey, IEnumerable<TElement>, TResult>> resultSelector, IEqualityComparer<TKey>? comparer);
+- public static IQueryable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector);
+- public static IQueryable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector, IEqualityComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector, IEqualityComparer<TKey>? comparer);
+- public static IQueryable<TResult> GroupBy<TSource, TKey, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TKey, IEnumerable<TSource>, TResult>> resultSelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> GroupBy<TSource, TKey, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TKey, IEnumerable<TSource>, TResult>> resultSelector);
+- public static IQueryable<TResult> GroupBy<TSource, TKey, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TKey, IEnumerable<TSource>, TResult>> resultSelector, IEqualityComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> GroupBy<TSource, TKey, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TKey, IEnumerable<TSource>, TResult>> resultSelector, IEqualityComparer<TKey>? comparer);
+- public static IQueryable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
+- public static IQueryable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer);
+- public static IQueryable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, IEnumerable<TInner>, TResult>> resultSelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, IEnumerable<TInner>, TResult>> resultSelector);
+- public static IQueryable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, IEnumerable<TInner>, TResult>> resultSelector, IEqualityComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, IEnumerable<TInner>, TResult>> resultSelector, IEqualityComparer<TKey>? comparer);
+- public static IQueryable<TSource> Intersect<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Intersect<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);
+- public static IQueryable<TSource> Intersect<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Intersect<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer);
+- public static IQueryable<TSource> IntersectBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TKey> source2, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> IntersectBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TKey> source2, Expression<Func<TSource, TKey>> keySelector);
+- public static IQueryable<TSource> IntersectBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TKey> source2, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> IntersectBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TKey> source2, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer);
+- public static IQueryable<TResult> Join<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, TInner, TResult>> resultSelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> Join<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, TInner, TResult>> resultSelector);
+- public static IQueryable<TResult> Join<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, TInner, TResult>> resultSelector, IEqualityComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> Join<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, TInner, TResult>> resultSelector, IEqualityComparer<TKey>? comparer);
+- public static TSource Last<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource Last<TSource>(this IQueryable<TSource> source);
+- public static TSource Last<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource Last<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static TSource? LastOrDefault<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? LastOrDefault<TSource>(this IQueryable<TSource> source);
+- public static TSource? LastOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? LastOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static TSource LastOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate, TSource defaultValue);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource LastOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate, TSource defaultValue);
+- public static TSource LastOrDefault<TSource>(this IQueryable<TSource> source, TSource defaultValue);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource LastOrDefault<TSource>(this IQueryable<TSource> source, TSource defaultValue);
+- public static long LongCount<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static long LongCount<TSource>(this IQueryable<TSource> source);
+- public static long LongCount<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static long LongCount<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static TResult? Max<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TResult>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TResult? Max<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TResult>> selector);
+- public static TSource? Max<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? Max<TSource>(this IQueryable<TSource> source);
+- public static TSource? Max<TSource>(this IQueryable<TSource> source, IComparer<TSource>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? Max<TSource>(this IQueryable<TSource> source, IComparer<TSource>? comparer);
+- public static TSource? MaxBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? MaxBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
+- public static TSource? MaxBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TSource>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? MaxBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TSource>? comparer);
+- public static TResult? Min<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TResult>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TResult? Min<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TResult>> selector);
+- public static TSource? Min<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? Min<TSource>(this IQueryable<TSource> source);
+- public static TSource? Min<TSource>(this IQueryable<TSource> source, IComparer<TSource>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? Min<TSource>(this IQueryable<TSource> source, IComparer<TSource>? comparer);
+- public static TSource? MinBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? MinBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
+- public static TSource? MinBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TSource>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? MinBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TSource>? comparer);
+- public static IQueryable<TResult> OfType<TResult>(this IQueryable source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> OfType<TResult>(this IQueryable source);
+- public static IOrderedQueryable<T> Order<T>(this IQueryable<T> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<T> Order<T>(this IQueryable<T> source);
+- public static IOrderedQueryable<T> Order<T>(this IQueryable<T> source, IComparer<T> comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<T> Order<T>(this IQueryable<T> source, IComparer<T> comparer);
+- public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
+- public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey>? comparer);
+- public static IOrderedQueryable<TSource> OrderByDescending<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<TSource> OrderByDescending<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
+- public static IOrderedQueryable<TSource> OrderByDescending<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<TSource> OrderByDescending<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey>? comparer);
+- public static IOrderedQueryable<T> OrderDescending<T>(this IQueryable<T> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<T> OrderDescending<T>(this IQueryable<T> source);
+- public static IOrderedQueryable<T> OrderDescending<T>(this IQueryable<T> source, IComparer<T> comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<T> OrderDescending<T>(this IQueryable<T> source, IComparer<T> comparer);
+- public static IQueryable<TSource> Prepend<TSource>(this IQueryable<TSource> source, TSource element);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Prepend<TSource>(this IQueryable<TSource> source, TSource element);
+- public static IQueryable<TSource> Reverse<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Reverse<TSource>(this IQueryable<TSource> source);
+- public static IQueryable<TResult> Select<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, int, TResult>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> Select<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, int, TResult>> selector);
+- public static IQueryable<TResult> Select<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TResult>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> Select<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TResult>> selector);
+- public static IQueryable<TResult> SelectMany<TSource, TCollection, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, IEnumerable<TCollection>>> collectionSelector, Expression<Func<TSource, TCollection, TResult>> resultSelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> SelectMany<TSource, TCollection, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, IEnumerable<TCollection>>> collectionSelector, Expression<Func<TSource, TCollection, TResult>> resultSelector);
+- public static IQueryable<TResult> SelectMany<TSource, TCollection, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, int, IEnumerable<TCollection>>> collectionSelector, Expression<Func<TSource, TCollection, TResult>> resultSelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> SelectMany<TSource, TCollection, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, int, IEnumerable<TCollection>>> collectionSelector, Expression<Func<TSource, TCollection, TResult>> resultSelector);
+- public static IQueryable<TResult> SelectMany<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, IEnumerable<TResult>>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> SelectMany<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, IEnumerable<TResult>>> selector);
+- public static IQueryable<TResult> SelectMany<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, int, IEnumerable<TResult>>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> SelectMany<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, int, IEnumerable<TResult>>> selector);
+- public static bool SequenceEqual<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static bool SequenceEqual<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);
+- public static bool SequenceEqual<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static bool SequenceEqual<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer);
+- public static TSource Single<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource Single<TSource>(this IQueryable<TSource> source);
+- public static TSource Single<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource Single<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static TSource? SingleOrDefault<TSource>(this IQueryable<TSource> source);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? SingleOrDefault<TSource>(this IQueryable<TSource> source);
+- public static TSource? SingleOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource? SingleOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static TSource SingleOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate, TSource defaultValue);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource SingleOrDefault<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate, TSource defaultValue);
+- public static TSource SingleOrDefault<TSource>(this IQueryable<TSource> source, TSource defaultValue);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static TSource SingleOrDefault<TSource>(this IQueryable<TSource> source, TSource defaultValue);
+- public static IQueryable<TSource> Skip<TSource>(this IQueryable<TSource> source, int count);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Skip<TSource>(this IQueryable<TSource> source, int count);
+- public static IQueryable<TSource> SkipLast<TSource>(this IQueryable<TSource> source, int count);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> SkipLast<TSource>(this IQueryable<TSource> source, int count);
+- public static IQueryable<TSource> SkipWhile<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> SkipWhile<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static IQueryable<TSource> SkipWhile<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> SkipWhile<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int, bool>> predicate);
+- public static decimal Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, decimal>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static decimal Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, decimal>> selector);
+- public static double Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, double>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static double Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, double>> selector);
+- public static int Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static int Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int>> selector);
+- public static long Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, long>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static long Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, long>> selector);
+- public static decimal? Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, decimal?>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static decimal? Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, decimal?>> selector);
+- public static double? Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, double?>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static double? Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, double?>> selector);
+- public static int? Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int?>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static int? Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int?>> selector);
+- public static long? Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, long?>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static long? Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, long?>> selector);
+- public static float? Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, float?>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static float? Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, float?>> selector);
+- public static float Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, float>> selector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static float Sum<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, float>> selector);
+- public static IQueryable<TSource> Take<TSource>(this IQueryable<TSource> source, int count);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Take<TSource>(this IQueryable<TSource> source, int count);
+- public static IQueryable<TSource> Take<TSource>(this IQueryable<TSource> source, Range range);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Take<TSource>(this IQueryable<TSource> source, Range range);
+- public static IQueryable<TSource> TakeLast<TSource>(this IQueryable<TSource> source, int count);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> TakeLast<TSource>(this IQueryable<TSource> source, int count);
+- public static IQueryable<TSource> TakeWhile<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> TakeWhile<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static IQueryable<TSource> TakeWhile<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> TakeWhile<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int, bool>> predicate);
+- public static IOrderedQueryable<TSource> ThenBy<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<TSource> ThenBy<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
+- public static IOrderedQueryable<TSource> ThenBy<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<TSource> ThenBy<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey>? comparer);
+- public static IOrderedQueryable<TSource> ThenByDescending<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<TSource> ThenByDescending<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector);
+- public static IOrderedQueryable<TSource> ThenByDescending<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IOrderedQueryable<TSource> ThenByDescending<TSource, TKey>(this IOrderedQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IComparer<TKey>? comparer);
+- public static IQueryable<TSource> Union<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Union<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2);
+- public static IQueryable<TSource> Union<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Union<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer);
+- public static IQueryable<TSource> UnionBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, Expression<Func<TSource, TKey>> keySelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> UnionBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, Expression<Func<TSource, TKey>> keySelector);
+- public static IQueryable<TSource> UnionBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> UnionBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer);
+- public static IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
+- public static IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int, bool>> predicate);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, int, bool>> predicate);
+- public static IQueryable<TResult> Zip<TFirst, TSecond, TResult>(this IQueryable<TFirst> source1, IEnumerable<TSecond> source2, Expression<Func<TFirst, TSecond, TResult>> resultSelector);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<TResult> Zip<TFirst, TSecond, TResult>(this IQueryable<TFirst> source1, IEnumerable<TSecond> source2, Expression<Func<TFirst, TSecond, TResult>> resultSelector);
+- public static IQueryable<(TFirst First, TSecond Second, TThird Third)> Zip<TFirst, TSecond, TThird>(this IQueryable<TFirst> source1, IEnumerable<TSecond> source2, IEnumerable<TThird> source3);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<(TFirst First, TSecond Second, TThird Third)> Zip<TFirst, TSecond, TThird>(this IQueryable<TFirst> source1, IEnumerable<TSecond> source2, IEnumerable<TThird> source3);
+- public static IQueryable<(TFirst First, TSecond Second)> Zip<TFirst, TSecond>(this IQueryable<TFirst> source1, IEnumerable<TSecond> source2);
++ [RequiresDynamicCodeAttribute("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
++ public static IQueryable<(TFirst First, TSecond Second)> Zip<TFirst, TSecond>(this IQueryable<TFirst> source1, IEnumerable<TSecond> source2);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Net.Http.Json.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Net.Http.Json.md
new file mode 100644
index 00000000..5c03ac47
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Net.Http.Json.md
@@ -0,0 +1,109 @@
+# System.Net.Http.Json
+
+``` diff
+ namespace System.Net.Http.Json {
+ public static class HttpClientJsonExtensions {
+- public static Task<object?> DeleteFromJsonAsync(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, Type type, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<object?> DeleteFromJsonAsync(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, Type type, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<object?> DeleteFromJsonAsync(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, Type type, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<object?> DeleteFromJsonAsync(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, Type type, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<object?> DeleteFromJsonAsync(this HttpClient client, Uri? requestUri, Type type, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<object?> DeleteFromJsonAsync(this HttpClient client, Uri? requestUri, Type type, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<object?> DeleteFromJsonAsync(this HttpClient client, Uri? requestUri, Type type, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<object?> DeleteFromJsonAsync(this HttpClient client, Uri? requestUri, Type type, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<TValue?> DeleteFromJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<TValue?> DeleteFromJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<TValue?> DeleteFromJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<TValue?> DeleteFromJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<TValue?> DeleteFromJsonAsync<TValue>(this HttpClient client, Uri? requestUri, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<TValue?> DeleteFromJsonAsync<TValue>(this HttpClient client, Uri? requestUri, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<TValue?> DeleteFromJsonAsync<TValue>(this HttpClient client, Uri? requestUri, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<TValue?> DeleteFromJsonAsync<TValue>(this HttpClient client, Uri? requestUri, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<object?> GetFromJsonAsync(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, Type type, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<object?> GetFromJsonAsync(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, Type type, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<object?> GetFromJsonAsync(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, Type type, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<object?> GetFromJsonAsync(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, Type type, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<object?> GetFromJsonAsync(this HttpClient client, Uri? requestUri, Type type, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<object?> GetFromJsonAsync(this HttpClient client, Uri? requestUri, Type type, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<object?> GetFromJsonAsync(this HttpClient client, Uri? requestUri, Type type, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<object?> GetFromJsonAsync(this HttpClient client, Uri? requestUri, Type type, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<TValue?> GetFromJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<TValue?> GetFromJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<TValue?> GetFromJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<TValue?> GetFromJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<TValue?> GetFromJsonAsync<TValue>(this HttpClient client, Uri? requestUri, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<TValue?> GetFromJsonAsync<TValue>(this HttpClient client, Uri? requestUri, JsonSerializerOptions? options, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<TValue?> GetFromJsonAsync<TValue>(this HttpClient client, Uri? requestUri, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<TValue?> GetFromJsonAsync<TValue>(this HttpClient client, Uri? requestUri, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<HttpResponseMessage> PatchAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PatchAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<HttpResponseMessage> PatchAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, CancellationToken cancellationToken);
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PatchAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, CancellationToken cancellationToken);
+- public static Task<HttpResponseMessage> PatchAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PatchAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<HttpResponseMessage> PatchAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, CancellationToken cancellationToken);
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PatchAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, CancellationToken cancellationToken);
+- public static Task<HttpResponseMessage> PostAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PostAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<HttpResponseMessage> PostAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, CancellationToken cancellationToken);
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PostAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, CancellationToken cancellationToken);
+- public static Task<HttpResponseMessage> PostAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PostAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<HttpResponseMessage> PostAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, CancellationToken cancellationToken);
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PostAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, CancellationToken cancellationToken);
+- public static Task<HttpResponseMessage> PutAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PutAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<HttpResponseMessage> PutAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, CancellationToken cancellationToken);
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PutAsJsonAsync<TValue>(this HttpClient client, [StringSyntaxAttribute("Uri")] string? requestUri, TValue value, CancellationToken cancellationToken);
+- public static Task<HttpResponseMessage> PutAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PutAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<HttpResponseMessage> PutAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, CancellationToken cancellationToken);
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<HttpResponseMessage> PutAsJsonAsync<TValue>(this HttpClient client, Uri? requestUri, TValue value, CancellationToken cancellationToken);
+ }
+ public static class HttpContentJsonExtensions {
+- public static Task<object?> ReadFromJsonAsync(this HttpContent content, Type type, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<object?> ReadFromJsonAsync(this HttpContent content, Type type, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
+- public static Task<T?> ReadFromJsonAsync<T>(this HttpContent content, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static Task<T?> ReadFromJsonAsync<T>(this HttpContent content, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default(CancellationToken));
+ }
+ public sealed class JsonContent : HttpContent {
+- public static JsonContent Create(object? inputValue, Type inputType, MediaTypeHeaderValue? mediaType = null, JsonSerializerOptions? options = null);
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static JsonContent Create(object? inputValue, Type inputType, MediaTypeHeaderValue? mediaType = null, JsonSerializerOptions? options = null);
+- public static JsonContent Create<T>(T inputValue, MediaTypeHeaderValue? mediaType = null, JsonSerializerOptions? options = null);
++ [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext.")]
++ public static JsonContent Create<T>(T inputValue, MediaTypeHeaderValue? mediaType = null, JsonSerializerOptions? options = null);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Net.NetworkInformation.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Net.NetworkInformation.md
new file mode 100644
index 00000000..15029a4e
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Net.NetworkInformation.md
@@ -0,0 +1,189 @@
+# System.Net.NetworkInformation
+
+``` diff
+ namespace System.Net.NetworkInformation {
+ public abstract class IcmpV4Statistics {
+- public abstract long ErrorsReceived { get; }
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract long ErrorsReceived { get; }
+- public abstract long ErrorsSent { get; }
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract long ErrorsSent { get; }
+- public abstract long MessagesReceived { get; }
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract long MessagesReceived { get; }
+- public abstract long MessagesSent { get; }
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract long MessagesSent { get; }
+ }
+ public abstract class IcmpV6Statistics {
+- public abstract long ErrorsReceived { get; }
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract long ErrorsReceived { get; }
+- public abstract long ErrorsSent { get; }
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract long ErrorsSent { get; }
+- public abstract long MessagesReceived { get; }
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract long MessagesReceived { get; }
+- public abstract long MessagesSent { get; }
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract long MessagesSent { get; }
+ }
+ public abstract class IPAddressInformation {
+- public abstract bool IsDnsEligible { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract bool IsDnsEligible { get; }
+- public abstract bool IsTransient { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract bool IsTransient { get; }
+ }
+ public abstract class IPGlobalProperties {
+- public abstract IPGlobalStatistics GetIPv6GlobalStatistics();
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract IPGlobalStatistics GetIPv6GlobalStatistics();
+ }
+ public abstract class IPInterfaceProperties {
+- [UnsupportedOSPlatformAttribute("android")]
+- public abstract IPAddressInformationCollection AnycastAddresses { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract IPAddressInformationCollection AnycastAddresses { get; }
+- [UnsupportedOSPlatformAttribute("android")]
+- public abstract IPAddressCollection DhcpServerAddresses { get; }
++ [UnsupportedOSPlatformAttribute("android")]
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract IPAddressCollection DhcpServerAddresses { get; }
+- [UnsupportedOSPlatformAttribute("android")]
+- public abstract bool IsDnsEnabled { get; }
++ [UnsupportedOSPlatformAttribute("android")]
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract bool IsDnsEnabled { get; }
+- [UnsupportedOSPlatformAttribute("android")]
+- public abstract bool IsDynamicDnsEnabled { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract bool IsDynamicDnsEnabled { get; }
+- [UnsupportedOSPlatformAttribute("android")]
+- public abstract IPAddressCollection WinsServersAddresses { get; }
++ [UnsupportedOSPlatformAttribute("android")]
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public abstract IPAddressCollection WinsServersAddresses { get; }
+ }
+ public abstract class IPInterfaceStatistics {
+- public abstract long IncomingUnknownProtocolPackets { get; }
++ [UnsupportedOSPlatformAttribute("linux")]
++ public abstract long IncomingUnknownProtocolPackets { get; }
+- public abstract long NonUnicastPacketsSent { get; }
++ [UnsupportedOSPlatformAttribute("linux")]
++ public abstract long NonUnicastPacketsSent { get; }
+ }
+ public abstract class IPv4InterfaceProperties {
+- [UnsupportedOSPlatformAttribute("android")]
+- public abstract bool IsAutomaticPrivateAddressingActive { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract bool IsAutomaticPrivateAddressingActive { get; }
+- [UnsupportedOSPlatformAttribute("android")]
+- public abstract bool IsAutomaticPrivateAddressingEnabled { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract bool IsAutomaticPrivateAddressingEnabled { get; }
+- [UnsupportedOSPlatformAttribute("android")]
+- public abstract bool IsDhcpEnabled { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract bool IsDhcpEnabled { get; }
+- [UnsupportedOSPlatformAttribute("android")]
+- public abstract bool IsForwardingEnabled { get; }
++ [SupportedOSPlatformAttribute("linux")]
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract bool IsForwardingEnabled { get; }
+- [UnsupportedOSPlatformAttribute("android")]
+- public abstract bool UsesWins { get; }
++ [SupportedOSPlatformAttribute("linux")]
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract bool UsesWins { get; }
+ }
+ public abstract class IPv6InterfaceProperties {
+- public virtual long GetScopeId(ScopeLevel scopeLevel);
++ [UnsupportedOSPlatformAttribute("freebsd")]
++ [UnsupportedOSPlatformAttribute("ios")]
++ [UnsupportedOSPlatformAttribute("osx")]
++ [UnsupportedOSPlatformAttribute("tvos")]
++ public virtual long GetScopeId(ScopeLevel scopeLevel);
+ }
+ public abstract class MulticastIPAddressInformation : IPAddressInformation {
+- public abstract long AddressPreferredLifetime { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract long AddressPreferredLifetime { get; }
+- public abstract long AddressValidLifetime { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract long AddressValidLifetime { get; }
+- public abstract long DhcpLeaseLifetime { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract long DhcpLeaseLifetime { get; }
+- public abstract DuplicateAddressDetectionState DuplicateAddressDetectionState { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract DuplicateAddressDetectionState DuplicateAddressDetectionState { get; }
+- public abstract PrefixOrigin PrefixOrigin { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract PrefixOrigin PrefixOrigin { get; }
+- public abstract SuffixOrigin SuffixOrigin { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract SuffixOrigin SuffixOrigin { get; }
+ }
+ public abstract class UnicastIPAddressInformation : IPAddressInformation {
+- public abstract long AddressPreferredLifetime { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract long AddressPreferredLifetime { get; }
+- public abstract long AddressValidLifetime { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract long AddressValidLifetime { get; }
+- public abstract long DhcpLeaseLifetime { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract long DhcpLeaseLifetime { get; }
+- public abstract DuplicateAddressDetectionState DuplicateAddressDetectionState { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract DuplicateAddressDetectionState DuplicateAddressDetectionState { get; }
+- public abstract PrefixOrigin PrefixOrigin { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract PrefixOrigin PrefixOrigin { get; }
+- public abstract SuffixOrigin SuffixOrigin { get; }
++ [SupportedOSPlatformAttribute("windows")]
++ public abstract SuffixOrigin SuffixOrigin { get; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Numerics.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Numerics.md
new file mode 100644
index 00000000..6e89843e
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Numerics.md
@@ -0,0 +1,114 @@
+# System.Numerics
+
+``` diff
+ namespace System.Numerics {
+ public readonly struct BigInteger : IAdditionOperators<BigInteger, BigInteger, BigInteger>, IAdditiveIdentity<BigInteger, BigInteger>, IBinaryInteger<BigInteger>, IBinaryNumber<BigInteger>, IBitwiseOperators<BigInteger, BigInteger, BigInteger>, IComparable, IComparable<BigInteger>, IComparisonOperators<BigInteger, BigInteger, bool>, IDecrementOperators<BigInteger>, IDivisionOperators<BigInteger, BigInteger, BigInteger>, IEqualityOperators<BigInteger, BigInteger, bool>, IEquatable<BigInteger>, IFormattable, IIncrementOperators<BigInteger>, IModulusOperators<BigInteger, BigInteger, BigInteger>, IMultiplicativeIdentity<BigInteger, BigInteger>, IMultiplyOperators<BigInteger, BigInteger, BigInteger>, INumber<BigInteger>, INumberBase<BigInteger>, IParsable<BigInteger>, IShiftOperators<BigInteger, int, BigInteger>, ISignedNumber<BigInteger>, ISpanFormattable, ISpanParsable<BigInteger>, ISubtractionOperators<BigInteger, BigInteger, BigInteger>, IUnaryNegationOperators<BigInteger, BigInteger>, IUnaryPlusOperators<BigInteger, BigInteger> {
++ static bool IBinaryInteger<BigInteger>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out BigInteger value);
++ static bool IBinaryInteger<BigInteger>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out BigInteger value);
+- static bool INumberBase<BigInteger>.TryConvertToChecked<TOther>(BigInteger value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<BigInteger>.TryConvertToChecked<TOther>(BigInteger value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<BigInteger>.TryConvertToSaturating<TOther>(BigInteger value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<BigInteger>.TryConvertToSaturating<TOther>(BigInteger value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<BigInteger>.TryConvertToTruncating<TOther>(BigInteger value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<BigInteger>.TryConvertToTruncating<TOther>(BigInteger value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public readonly struct Complex : IAdditionOperators<Complex, Complex, Complex>, IAdditiveIdentity<Complex, Complex>, IDecrementOperators<Complex>, IDivisionOperators<Complex, Complex, Complex>, IEqualityOperators<Complex, Complex, bool>, IEquatable<Complex>, IFormattable, IIncrementOperators<Complex>, IMultiplicativeIdentity<Complex, Complex>, IMultiplyOperators<Complex, Complex, Complex>, INumberBase<Complex>, IParsable<Complex>, ISignedNumber<Complex>, ISpanFormattable, ISpanParsable<Complex>, ISubtractionOperators<Complex, Complex, Complex>, IUnaryNegationOperators<Complex, Complex>, IUnaryPlusOperators<Complex, Complex> {
+- static bool INumberBase<Complex>.TryConvertToChecked<TOther>(Complex value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<Complex>.TryConvertToChecked<TOther>(Complex value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<Complex>.TryConvertToSaturating<TOther>(Complex value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<Complex>.TryConvertToSaturating<TOther>(Complex value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<Complex>.TryConvertToTruncating<TOther>(Complex value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<Complex>.TryConvertToTruncating<TOther>(Complex value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+- public interface IAdditionOperators<TSelf, TOther, TResult> where TSelf : IAdditionOperators<TSelf, TOther, TResult>
++ public interface IAdditionOperators<TSelf, TOther, TResult> where TSelf : IAdditionOperators<TSelf, TOther, TResult>?
+- public interface IAdditiveIdentity<TSelf, TResult> where TSelf : IAdditiveIdentity<TSelf, TResult>
++ public interface IAdditiveIdentity<TSelf, TResult> where TSelf : IAdditiveIdentity<TSelf, TResult>?
+- public interface IBinaryFloatingPointIeee754<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IBinaryNumber<TSelf>, IBitwiseOperators<TSelf, TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IExponentialFunctions<TSelf>, IFloatingPoint<TSelf>, IFloatingPointConstants<TSelf>, IFloatingPointIeee754<TSelf>, IFormattable, IHyperbolicFunctions<TSelf>, IIncrementOperators<TSelf>, ILogarithmicFunctions<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumber<TSelf>, INumberBase<TSelf>, IParsable<TSelf>, IPowerFunctions<TSelf>, IRootFunctions<TSelf>, ISignedNumber<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, ITrigonometricFunctions<TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IBinaryFloatingPointIeee754<TSelf>
++ public interface IBinaryFloatingPointIeee754<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IBinaryNumber<TSelf>, IBitwiseOperators<TSelf, TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IExponentialFunctions<TSelf>, IFloatingPoint<TSelf>, IFloatingPointConstants<TSelf>, IFloatingPointIeee754<TSelf>, IFormattable, IHyperbolicFunctions<TSelf>, IIncrementOperators<TSelf>, ILogarithmicFunctions<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumber<TSelf>, INumberBase<TSelf>, IParsable<TSelf>, IPowerFunctions<TSelf>, IRootFunctions<TSelf>, ISignedNumber<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, ITrigonometricFunctions<TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IBinaryFloatingPointIeee754<TSelf>?
+- public interface IBinaryInteger<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IBinaryNumber<TSelf>, IBitwiseOperators<TSelf, TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumber<TSelf>, INumberBase<TSelf>, IParsable<TSelf>, IShiftOperators<TSelf, int, TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IBinaryInteger<TSelf> {
++ public interface IBinaryInteger<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IBinaryNumber<TSelf>, IBitwiseOperators<TSelf, TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumber<TSelf>, INumberBase<TSelf>, IParsable<TSelf>, IShiftOperators<TSelf, int, TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IBinaryInteger<TSelf>? {
++ static TSelf ReadBigEndian(byte[] source, bool isUnsigned);
++ static TSelf ReadBigEndian(byte[] source, int startIndex, bool isUnsigned);
++ static TSelf ReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned);
++ static TSelf ReadLittleEndian(byte[] source, bool isUnsigned);
++ static TSelf ReadLittleEndian(byte[] source, int startIndex, bool isUnsigned);
++ static TSelf ReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned);
++ static abstract bool TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out TSelf value);
++ static abstract bool TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out TSelf value);
+ }
+- public interface IBinaryNumber<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IBitwiseOperators<TSelf, TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumber<TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IBinaryNumber<TSelf> {
++ public interface IBinaryNumber<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IBitwiseOperators<TSelf, TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumber<TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IBinaryNumber<TSelf>? {
+- static abstract TSelf AllBitsSet { get; }
++ static TSelf AllBitsSet { get; }
+ }
+- public interface IBitwiseOperators<TSelf, TOther, TResult> where TSelf : IBitwiseOperators<TSelf, TOther, TResult>
++ public interface IBitwiseOperators<TSelf, TOther, TResult> where TSelf : IBitwiseOperators<TSelf, TOther, TResult>?
+- public interface IComparisonOperators<TSelf, TOther, TResult> : IEqualityOperators<TSelf, TOther, TResult> where TSelf : IComparisonOperators<TSelf, TOther, TResult>
++ public interface IComparisonOperators<TSelf, TOther, TResult> : IEqualityOperators<TSelf, TOther, TResult> where TSelf : IComparisonOperators<TSelf, TOther, TResult>?
+- public interface IDecrementOperators<TSelf> where TSelf : IDecrementOperators<TSelf>
++ public interface IDecrementOperators<TSelf> where TSelf : IDecrementOperators<TSelf>?
+- public interface IDivisionOperators<TSelf, TOther, TResult> where TSelf : IDivisionOperators<TSelf, TOther, TResult>
++ public interface IDivisionOperators<TSelf, TOther, TResult> where TSelf : IDivisionOperators<TSelf, TOther, TResult>?
+- public interface IEqualityOperators<TSelf, TOther, TResult> where TSelf : IEqualityOperators<TSelf, TOther, TResult>
++ public interface IEqualityOperators<TSelf, TOther, TResult> where TSelf : IEqualityOperators<TSelf, TOther, TResult>?
+- public interface IExponentialFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IExponentialFunctions<TSelf>
++ public interface IExponentialFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IExponentialFunctions<TSelf>?
+- public interface IFloatingPoint<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumber<TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISignedNumber<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IFloatingPoint<TSelf>
++ public interface IFloatingPoint<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumber<TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISignedNumber<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IFloatingPoint<TSelf>?
+- public interface IFloatingPointConstants<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IFloatingPointConstants<TSelf>
++ public interface IFloatingPointConstants<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IFloatingPointConstants<TSelf>?
+- public interface IFloatingPointIeee754<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IExponentialFunctions<TSelf>, IFloatingPoint<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IHyperbolicFunctions<TSelf>, IIncrementOperators<TSelf>, ILogarithmicFunctions<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumber<TSelf>, INumberBase<TSelf>, IParsable<TSelf>, IPowerFunctions<TSelf>, IRootFunctions<TSelf>, ISignedNumber<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, ITrigonometricFunctions<TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IFloatingPointIeee754<TSelf>
++ public interface IFloatingPointIeee754<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IExponentialFunctions<TSelf>, IFloatingPoint<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IHyperbolicFunctions<TSelf>, IIncrementOperators<TSelf>, ILogarithmicFunctions<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumber<TSelf>, INumberBase<TSelf>, IParsable<TSelf>, IPowerFunctions<TSelf>, IRootFunctions<TSelf>, ISignedNumber<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, ITrigonometricFunctions<TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IFloatingPointIeee754<TSelf>?
+- public interface IHyperbolicFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IHyperbolicFunctions<TSelf>
++ public interface IHyperbolicFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IHyperbolicFunctions<TSelf>?
+- public interface IIncrementOperators<TSelf> where TSelf : IIncrementOperators<TSelf>
++ public interface IIncrementOperators<TSelf> where TSelf : IIncrementOperators<TSelf>?
+- public interface ILogarithmicFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : ILogarithmicFunctions<TSelf>
++ public interface ILogarithmicFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : ILogarithmicFunctions<TSelf>?
+- public interface IMinMaxValue<TSelf> where TSelf : IMinMaxValue<TSelf>
++ public interface IMinMaxValue<TSelf> where TSelf : IMinMaxValue<TSelf>?
+- public interface IModulusOperators<TSelf, TOther, TResult> where TSelf : IModulusOperators<TSelf, TOther, TResult>
++ public interface IModulusOperators<TSelf, TOther, TResult> where TSelf : IModulusOperators<TSelf, TOther, TResult>?
+- public interface IMultiplicativeIdentity<TSelf, TResult> where TSelf : IMultiplicativeIdentity<TSelf, TResult>
++ public interface IMultiplicativeIdentity<TSelf, TResult> where TSelf : IMultiplicativeIdentity<TSelf, TResult>?
+- public interface IMultiplyOperators<TSelf, TOther, TResult> where TSelf : IMultiplyOperators<TSelf, TOther, TResult>
++ public interface IMultiplyOperators<TSelf, TOther, TResult> where TSelf : IMultiplyOperators<TSelf, TOther, TResult>?
+- public interface INumber<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : INumber<TSelf>
++ public interface INumber<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IComparable, IComparable<TSelf>, IComparisonOperators<TSelf, TSelf, bool>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IModulusOperators<TSelf, TSelf, TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : INumber<TSelf>?
+- public interface INumberBase<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : INumberBase<TSelf> {
++ public interface INumberBase<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : INumberBase<TSelf>? {
+- static abstract bool TryConvertFromChecked<TOther>(TOther value, [NotNullWhenAttribute(true)] out TSelf? result);
++ static abstract bool TryConvertFromChecked<TOther>(TOther value, [MaybeNullWhenAttribute(false)] out TSelf result);
+- static abstract bool TryConvertFromSaturating<TOther>(TOther value, [NotNullWhenAttribute(true)] out TSelf? result);
++ static abstract bool TryConvertFromSaturating<TOther>(TOther value, [MaybeNullWhenAttribute(false)] out TSelf result);
+- static abstract bool TryConvertFromTruncating<TOther>(TOther value, [NotNullWhenAttribute(true)] out TSelf? result);
++ static abstract bool TryConvertFromTruncating<TOther>(TOther value, [MaybeNullWhenAttribute(false)] out TSelf result);
+- static abstract bool TryConvertToChecked<TOther>(TSelf value, [NotNullWhenAttribute(true)] out TOther? result);
++ static abstract bool TryConvertToChecked<TOther>(TSelf value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static abstract bool TryConvertToSaturating<TOther>(TSelf value, [NotNullWhenAttribute(true)] out TOther? result);
++ static abstract bool TryConvertToSaturating<TOther>(TSelf value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static abstract bool TryConvertToTruncating<TOther>(TSelf value, [NotNullWhenAttribute(true)] out TOther? result);
++ static abstract bool TryConvertToTruncating<TOther>(TSelf value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+- public interface IPowerFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IPowerFunctions<TSelf>
++ public interface IPowerFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IPowerFunctions<TSelf>?
+- public interface IRootFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IRootFunctions<TSelf>
++ public interface IRootFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IRootFunctions<TSelf>?
+- public interface IShiftOperators<TSelf, TOther, TResult> where TSelf : IShiftOperators<TSelf, TOther, TResult>
++ public interface IShiftOperators<TSelf, TOther, TResult> where TSelf : IShiftOperators<TSelf, TOther, TResult>?
+- public interface ISignedNumber<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : ISignedNumber<TSelf>
++ public interface ISignedNumber<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : ISignedNumber<TSelf>?
+- public interface ISubtractionOperators<TSelf, TOther, TResult> where TSelf : ISubtractionOperators<TSelf, TOther, TResult>
++ public interface ISubtractionOperators<TSelf, TOther, TResult> where TSelf : ISubtractionOperators<TSelf, TOther, TResult>?
+- public interface ITrigonometricFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : ITrigonometricFunctions<TSelf>
++ public interface ITrigonometricFunctions<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFloatingPointConstants<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : ITrigonometricFunctions<TSelf>?
+- public interface IUnaryNegationOperators<TSelf, TResult> where TSelf : IUnaryNegationOperators<TSelf, TResult>
++ public interface IUnaryNegationOperators<TSelf, TResult> where TSelf : IUnaryNegationOperators<TSelf, TResult>?
+- public interface IUnaryPlusOperators<TSelf, TResult> where TSelf : IUnaryPlusOperators<TSelf, TResult>
++ public interface IUnaryPlusOperators<TSelf, TResult> where TSelf : IUnaryPlusOperators<TSelf, TResult>?
+- public interface IUnsignedNumber<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IUnsignedNumber<TSelf>
++ public interface IUnsignedNumber<TSelf> : IAdditionOperators<TSelf, TSelf, TSelf>, IAdditiveIdentity<TSelf, TSelf>, IDecrementOperators<TSelf>, IDivisionOperators<TSelf, TSelf, TSelf>, IEqualityOperators<TSelf, TSelf, bool>, IEquatable<TSelf>, IFormattable, IIncrementOperators<TSelf>, IMultiplicativeIdentity<TSelf, TSelf>, IMultiplyOperators<TSelf, TSelf, TSelf>, INumberBase<TSelf>, IParsable<TSelf>, ISpanFormattable, ISpanParsable<TSelf>, ISubtractionOperators<TSelf, TSelf, TSelf>, IUnaryNegationOperators<TSelf, TSelf>, IUnaryPlusOperators<TSelf, TSelf> where TSelf : IUnsignedNumber<TSelf>?
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Reflection.Emit.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Reflection.Emit.md
new file mode 100644
index 00000000..a7b42712
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Reflection.Emit.md
@@ -0,0 +1,19 @@
+# System.Reflection.Emit
+
+``` diff
+ namespace System.Reflection.Emit {
+ public sealed class EnumBuilder : TypeInfo {
+- public Type? CreateType();
++ public Type CreateType();
+- public TypeInfo? CreateTypeInfo();
++ public TypeInfo CreateTypeInfo();
+ }
+ public sealed class TypeBuilder : TypeInfo {
+- public Type? CreateType();
++ public Type CreateType();
+- public TypeInfo? CreateTypeInfo();
++ public TypeInfo CreateTypeInfo();
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Reflection.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Reflection.md
new file mode 100644
index 00000000..f4b093c7
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Reflection.md
@@ -0,0 +1,12 @@
+# System.Reflection
+
+``` diff
+ namespace System.Reflection {
+ public abstract class DispatchProxy {
+- public static T Create<T, TProxy>() where TProxy : DispatchProxy;
++ [RequiresDynamicCodeAttribute("Creating a proxy instance requires generating code at runtime")]
++ public static T Create<T, TProxy>() where TProxy : DispatchProxy;
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.InteropServices.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.InteropServices.md
new file mode 100644
index 00000000..5106d869
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.InteropServices.md
@@ -0,0 +1,21 @@
+# System.Runtime.InteropServices
+
+``` diff
+ namespace System.Runtime.InteropServices {
+ public static class NativeMemory {
++ [CLSCompliantAttribute(false)]
++ public unsafe static void Copy(void* source, void* destination, UIntPtr byteCount);
++ [CLSCompliantAttribute(false)]
++ public unsafe static void Fill(void* ptr, UIntPtr byteCount, byte value);
+ }
+ public readonly struct NFloat : IAdditionOperators<NFloat, NFloat, NFloat>, IAdditiveIdentity<NFloat, NFloat>, IBinaryFloatingPointIeee754<NFloat>, IBinaryNumber<NFloat>, IBitwiseOperators<NFloat, NFloat, NFloat>, IComparable, IComparable<NFloat>, IComparisonOperators<NFloat, NFloat, bool>, IDecrementOperators<NFloat>, IDivisionOperators<NFloat, NFloat, NFloat>, IEqualityOperators<NFloat, NFloat, bool>, IEquatable<NFloat>, IExponentialFunctions<NFloat>, IFloatingPoint<NFloat>, IFloatingPointConstants<NFloat>, IFloatingPointIeee754<NFloat>, IFormattable, IHyperbolicFunctions<NFloat>, IIncrementOperators<NFloat>, ILogarithmicFunctions<NFloat>, IMinMaxValue<NFloat>, IModulusOperators<NFloat, NFloat, NFloat>, IMultiplicativeIdentity<NFloat, NFloat>, IMultiplyOperators<NFloat, NFloat, NFloat>, INumber<NFloat>, INumberBase<NFloat>, IParsable<NFloat>, IPowerFunctions<NFloat>, IRootFunctions<NFloat>, ISignedNumber<NFloat>, ISpanFormattable, ISpanParsable<NFloat>, ISubtractionOperators<NFloat, NFloat, NFloat>, ITrigonometricFunctions<NFloat>, IUnaryNegationOperators<NFloat, NFloat>, IUnaryPlusOperators<NFloat, NFloat> {
+- static bool INumberBase<NFloat>.TryConvertToChecked<TOther>(NFloat value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<NFloat>.TryConvertToChecked<TOther>(NFloat value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<NFloat>.TryConvertToSaturating<TOther>(NFloat value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<NFloat>.TryConvertToSaturating<TOther>(NFloat value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<NFloat>.TryConvertToTruncating<TOther>(NFloat value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<NFloat>.TryConvertToTruncating<TOther>(NFloat value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.DataContracts.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.DataContracts.md
new file mode 100644
index 00000000..63c4c96b
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.DataContracts.md
@@ -0,0 +1,55 @@
+# System.Runtime.Serialization.DataContracts
+
+``` diff
++namespace System.Runtime.Serialization.DataContracts {
++ public abstract class DataContract {
++ public virtual DataContract? BaseContract { get; }
++ public virtual string? ContractType { get; }
++ public virtual ReadOnlyCollection<DataMember> DataMembers { get; }
++ public virtual bool IsBuiltInDataContract { get; }
++ public virtual bool IsISerializable { get; }
++ public virtual bool IsReference { get; }
++ public virtual bool IsValueType { get; }
++ public virtual Dictionary<XmlQualifiedName, DataContract>? KnownDataContracts { get; }
++ public virtual Type OriginalUnderlyingType { get; }
++ public virtual XmlDictionaryString? TopLevelElementName { get; }
++ public virtual XmlDictionaryString? TopLevelElementNamespace { get; }
++ public virtual Type UnderlyingType { get; }
++ public virtual XmlQualifiedName XmlName { get; }
++ public virtual XmlQualifiedName GetArrayTypeName(bool isNullable);
++ public static DataContract? GetBuiltInDataContract(string name, string ns);
++ public static XmlQualifiedName GetXmlName(Type type);
++ public virtual bool IsDictionaryLike([NotNullWhenAttribute(true)] out string? keyName, [NotNullWhenAttribute(true)] out string? valueName, [NotNullWhenAttribute(true)] out string? itemName);
++ }
++ public sealed class DataContractSet {
++ public DataContractSet(DataContractSet dataContractSet);
++ public DataContractSet(ISerializationSurrogateProvider? dataContractSurrogate, IEnumerable<Type>? referencedTypes, IEnumerable<Type>? referencedCollectionTypes);
++ public Dictionary<XmlQualifiedName, DataContract> Contracts { get; }
++ public Dictionary<XmlQualifiedName, DataContract>? KnownTypesForObject { get; }
++ public Dictionary<DataContract, object> ProcessedContracts { get; }
++ public Hashtable SurrogateData { get; }
++ public DataContract GetDataContract(Type type);
++ public DataContract? GetDataContract(XmlQualifiedName key);
++ public Type? GetReferencedType(XmlQualifiedName xmlName, DataContract dataContract, out DataContract? referencedContract, out object[]? genericParameters, bool? supportGenericTypes = default(bool?));
++ public List<XmlQualifiedName> ImportSchemaSet(XmlSchemaSet schemaSet, IEnumerable<XmlSchemaElement> elements, bool importXmlDataType);
++ public void ImportSchemaSet(XmlSchemaSet schemaSet, IEnumerable<XmlQualifiedName>? typeNames, bool importXmlDataType);
++ }
++ public sealed class DataMember {
++ public bool EmitDefaultValue { get; }
++ public bool IsNullable { get; }
++ public bool IsRequired { get; }
++ public DataContract MemberTypeContract { get; }
++ public string Name { get; }
++ public long Order { get; }
++ }
++ public sealed class XmlDataContract : DataContract {
++ public bool HasRoot { get; }
++ public bool IsAnonymous { get; }
++ public bool IsTopLevelElementNullable { get; }
++ public bool IsTypeDefinedOnImport { get; set; }
++ public new bool IsValueType { get; set; }
++ public XmlSchemaType? XsdType { get; }
++ }
++}
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.Json.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.Json.md
new file mode 100644
index 00000000..9c1065f1
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.Json.md
@@ -0,0 +1,11 @@
+# System.Runtime.Serialization.Json
+
+``` diff
+ namespace System.Runtime.Serialization.Json {
+ public sealed class DataContractJsonSerializer : XmlObjectSerializer {
++ public ISerializationSurrogateProvider? GetSerializationSurrogateProvider();
++ public void SetSerializationSurrogateProvider(ISerializationSurrogateProvider? provider);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.md
new file mode 100644
index 00000000..91a730bc
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Serialization.md
@@ -0,0 +1,16 @@
+# System.Runtime.Serialization
+
+``` diff
+ namespace System.Runtime.Serialization {
+ public class ExportOptions {
++ public ISerializationSurrogateProvider DataContractSurrogate { get; set; }
+ }
++ public interface ISerializationSurrogateProvider2 : ISerializationSurrogateProvider {
++ object? GetCustomDataToExport(MemberInfo memberInfo, Type dataContractType);
++ object? GetCustomDataToExport(Type runtimeType, Type dataContractType);
++ void GetKnownCustomDataTypes(Collection<Type> customDataTypes);
++ Type? GetReferencedTypeOnImport(string typeName, string typeNamespace, object? customData);
++ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Versioning.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Versioning.md
new file mode 100644
index 00000000..28ea75b6
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.Versioning.md
@@ -0,0 +1,19 @@
+# System.Runtime.Versioning
+
+``` diff
+ namespace System.Runtime.Versioning {
+- public sealed class ObsoletedInOSPlatformAttribute : OSPlatformAttribute {
+- public ObsoletedInOSPlatformAttribute(string platformName);
+- public ObsoletedInOSPlatformAttribute(string platformName, string? message);
+- public string Message { get; }
+- public string Url { get; set; }
+- }
++ public sealed class ObsoletedOSPlatformAttribute : OSPlatformAttribute {
++ public ObsoletedOSPlatformAttribute(string platformName);
++ public ObsoletedOSPlatformAttribute(string platformName, string? message);
++ public string Message { get; }
++ public string Url { get; set; }
++ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.md
new file mode 100644
index 00000000..4a0ad521
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Runtime.md
@@ -0,0 +1,11 @@
+# System.Runtime
+
+``` diff
+ namespace System.Runtime {
++ public static class ControlledExecution {
++ [ObsoleteAttribute("ControlledExecution.Run method may corrupt the process and should not be used in production code.", DiagnosticId="SYSLIB0046", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
++ public static void Run(Action action, CancellationToken cancellationToken);
++ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Security.Cryptography.X509Certificates.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Security.Cryptography.X509Certificates.md
new file mode 100644
index 00000000..023e41a6
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Security.Cryptography.X509Certificates.md
@@ -0,0 +1,100 @@
+# System.Security.Cryptography.X509Certificates
+
+``` diff
+ namespace System.Security.Cryptography.X509Certificates {
+ [UnsupportedOSPlatformAttribute("browser")]
+ public sealed class CertificateRequest {
++ public CertificateRequest(X500DistinguishedName subjectName, PublicKey publicKey, HashAlgorithmName hashAlgorithm, RSASignaturePadding? rsaSignaturePadding = null);
++ public Collection<AsnEncodedData> OtherRequestAttributes { get; }
++ public string CreateSigningRequestPem();
++ public string CreateSigningRequestPem(X509SignatureGenerator signatureGenerator);
++ public static CertificateRequest LoadSigningRequest(byte[] pkcs10, HashAlgorithmName signerHashAlgorithm, CertificateRequestLoadOptions options = CertificateRequestLoadOptions.Default, RSASignaturePadding? signerSignaturePadding = null);
++ public static CertificateRequest LoadSigningRequest(ReadOnlySpan<byte> pkcs10, HashAlgorithmName signerHashAlgorithm, out int bytesConsumed, CertificateRequestLoadOptions options = CertificateRequestLoadOptions.Default, RSASignaturePadding? signerSignaturePadding = null);
++ public static CertificateRequest LoadSigningRequestPem(ReadOnlySpan<char> pkcs10Pem, HashAlgorithmName signerHashAlgorithm, CertificateRequestLoadOptions options = CertificateRequestLoadOptions.Default, RSASignaturePadding? signerSignaturePadding = null);
++ public static CertificateRequest LoadSigningRequestPem(string pkcs10Pem, HashAlgorithmName signerHashAlgorithm, CertificateRequestLoadOptions options = CertificateRequestLoadOptions.Default, RSASignaturePadding? signerSignaturePadding = null);
+ }
++ [FlagsAttribute]
++ public enum CertificateRequestLoadOptions {
++ Default = 0,
++ SkipSignatureValidation = 1,
++ UnsafeLoadCertificateExtensions = 2,
++ }
++ public sealed class CertificateRevocationListBuilder {
++ public CertificateRevocationListBuilder();
++ public void AddEntry(byte[] serialNumber, DateTimeOffset? revocationTime = default(DateTimeOffset?), X509RevocationReason? reason = default(X509RevocationReason?));
++ public void AddEntry(ReadOnlySpan<byte> serialNumber, DateTimeOffset? revocationTime = default(DateTimeOffset?), X509RevocationReason? reason = default(X509RevocationReason?));
++ public void AddEntry(X509Certificate2 certificate, DateTimeOffset? revocationTime = default(DateTimeOffset?), X509RevocationReason? reason = default(X509RevocationReason?));
++ public byte[] Build(X500DistinguishedName issuerName, X509SignatureGenerator generator, BigInteger crlNumber, DateTimeOffset nextUpdate, HashAlgorithmName hashAlgorithm, X509AuthorityKeyIdentifierExtension authorityKeyIdentifier, DateTimeOffset? thisUpdate = default(DateTimeOffset?));
++ public byte[] Build(X509Certificate2 issuerCertificate, BigInteger crlNumber, DateTimeOffset nextUpdate, HashAlgorithmName hashAlgorithm, RSASignaturePadding? rsaSignaturePadding = null, DateTimeOffset? thisUpdate = default(DateTimeOffset?));
++ public static X509Extension BuildCrlDistributionPointExtension(IEnumerable<string> uris, bool critical = false);
++ public static CertificateRevocationListBuilder Load(byte[] currentCrl, out BigInteger currentCrlNumber);
++ public static CertificateRevocationListBuilder Load(ReadOnlySpan<byte> currentCrl, out BigInteger currentCrlNumber, out int bytesConsumed);
++ public static CertificateRevocationListBuilder LoadPem(ReadOnlySpan<char> currentCrl, out BigInteger currentCrlNumber);
++ public static CertificateRevocationListBuilder LoadPem(string currentCrl, out BigInteger currentCrlNumber);
++ public bool RemoveEntry(byte[] serialNumber);
++ public bool RemoveEntry(ReadOnlySpan<byte> serialNumber);
++ }
+ public sealed class X500DistinguishedName : AsnEncodedData {
++ public IEnumerable<X500RelativeDistinguishedName> EnumerateRelativeDistinguishedNames(bool reversed = true);
+ }
++ public sealed class X500RelativeDistinguishedName {
++ public bool HasMultipleElements { get; }
++ public ReadOnlyMemory<byte> RawData { get; }
++ public Oid GetSingleElementType();
++ public string? GetSingleElementValue();
++ }
++ public sealed class X509AuthorityKeyIdentifierExtension : X509Extension {
++ public X509AuthorityKeyIdentifierExtension();
++ public X509AuthorityKeyIdentifierExtension(byte[] rawData, bool critical = false);
++ public X509AuthorityKeyIdentifierExtension(ReadOnlySpan<byte> rawData, bool critical = false);
++ public ReadOnlyMemory<byte>? KeyIdentifier { get; }
++ public X500DistinguishedName? NamedIssuer { get; }
++ public ReadOnlyMemory<byte>? RawIssuer { get; }
++ public ReadOnlyMemory<byte>? SerialNumber { get; }
++ public override void CopyFrom(AsnEncodedData asnEncodedData);
++ public static X509AuthorityKeyIdentifierExtension Create(byte[] keyIdentifier, X500DistinguishedName issuerName, byte[] serialNumber);
++ public static X509AuthorityKeyIdentifierExtension Create(ReadOnlySpan<byte> keyIdentifier, X500DistinguishedName issuerName, ReadOnlySpan<byte> serialNumber);
++ public static X509AuthorityKeyIdentifierExtension CreateFromCertificate(X509Certificate2 certificate, bool includeKeyIdentifier, bool includeIssuerAndSerial);
++ public static X509AuthorityKeyIdentifierExtension CreateFromIssuerNameAndSerialNumber(X500DistinguishedName issuerName, byte[] serialNumber);
++ public static X509AuthorityKeyIdentifierExtension CreateFromIssuerNameAndSerialNumber(X500DistinguishedName issuerName, ReadOnlySpan<byte> serialNumber);
++ public static X509AuthorityKeyIdentifierExtension CreateFromSubjectKeyIdentifier(byte[] subjectKeyIdentifier);
++ public static X509AuthorityKeyIdentifierExtension CreateFromSubjectKeyIdentifier(ReadOnlySpan<byte> subjectKeyIdentifier);
++ public static X509AuthorityKeyIdentifierExtension CreateFromSubjectKeyIdentifier(X509SubjectKeyIdentifierExtension subjectKeyIdentifier);
++ }
+ public sealed class X509BasicConstraintsExtension : X509Extension {
++ public static X509BasicConstraintsExtension CreateForCertificateAuthority(int? pathLengthConstraint = default(int?));
++ public static X509BasicConstraintsExtension CreateForEndEntity(bool critical = false);
+ }
+ public class X509Certificate : IDeserializationCallback, IDisposable, ISerializable {
++ public ReadOnlyMemory<byte> SerialNumberBytes { get; }
+ }
+ public class X509Certificate2 : X509Certificate {
++ public bool MatchesHostname(string hostname, bool allowWildcards = true, bool allowCommonName = true);
+ }
++ public enum X509RevocationReason {
++ AACompromise = 10,
++ AffiliationChanged = 3,
++ CACompromise = 2,
++ CertificateHold = 6,
++ CessationOfOperation = 5,
++ KeyCompromise = 1,
++ PrivilegeWithdrawn = 9,
++ RemoveFromCrl = 8,
++ Superseded = 4,
++ Unspecified = 0,
++ WeakAlgorithmOrKey = 11,
++ }
++ public sealed class X509SubjectAlternativeNameExtension : X509Extension {
++ public X509SubjectAlternativeNameExtension();
++ public X509SubjectAlternativeNameExtension(byte[] rawData, bool critical = false);
++ public X509SubjectAlternativeNameExtension(ReadOnlySpan<byte> rawData, bool critical = false);
++ public override void CopyFrom(AsnEncodedData asnEncodedData);
++ public IEnumerable<string> EnumerateDnsNames();
++ public IEnumerable<IPAddress> EnumerateIPAddresses();
++ }
+ public sealed class X509SubjectKeyIdentifierExtension : X509Extension {
++ public ReadOnlyMemory<byte> SubjectKeyIdentifierBytes { get; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Security.Cryptography.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Security.Cryptography.md
new file mode 100644
index 00000000..5b1268c4
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Security.Cryptography.md
@@ -0,0 +1,117 @@
+# System.Security.Cryptography
+
+``` diff
+ namespace System.Security.Cryptography {
+ public abstract class Aes : SymmetricAlgorithm {
++ [UnsupportedOSPlatformAttribute("browser")]
+ public static new Aes Create();
+ }
+ [ObsoleteAttribute("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+ public sealed class AesCryptoServiceProvider : Aes {
++ [UnsupportedOSPlatformAttribute("browser")]
+ public AesCryptoServiceProvider();
+ }
+ [ObsoleteAttribute("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
++ [UnsupportedOSPlatformAttribute("browser")]
+ public sealed class AesManaged : Aes
+ {
+ }
+ public abstract class ECDsa : ECAlgorithm {
++ public byte[] SignData(ReadOnlySpan<byte> data, HashAlgorithmName hashAlgorithm);
++ public byte[] SignData(ReadOnlySpan<byte> data, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat);
++ public int SignData(ReadOnlySpan<byte> data, Span<byte> destination, HashAlgorithmName hashAlgorithm);
++ public int SignData(ReadOnlySpan<byte> data, Span<byte> destination, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat);
++ public byte[] SignHash(ReadOnlySpan<byte> hash);
++ public byte[] SignHash(ReadOnlySpan<byte> hash, DSASignatureFormat signatureFormat);
++ public int SignHash(ReadOnlySpan<byte> hash, Span<byte> destination);
++ public int SignHash(ReadOnlySpan<byte> hash, Span<byte> destination, DSASignatureFormat signatureFormat);
+ }
+- [UnsupportedOSPlatformAttribute("browser")]
+ public class HMACMD5 : HMAC {
++ [UnsupportedOSPlatformAttribute("browser")]
+ public HMACMD5();
+- public HMACMD5(byte[] key);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public HMACMD5(byte[] key);
+- public static byte[] HashData(byte[] key, byte[] source);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static byte[] HashData(byte[] key, byte[] source);
+- public static byte[] HashData(byte[] key, Stream source);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static byte[] HashData(byte[] key, Stream source);
+- public static byte[] HashData(ReadOnlySpan<byte> key, Stream source);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static byte[] HashData(ReadOnlySpan<byte> key, Stream source);
+- public static int HashData(ReadOnlySpan<byte> key, Stream source, Span<byte> destination);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static int HashData(ReadOnlySpan<byte> key, Stream source, Span<byte> destination);
+- public static byte[] HashData(ReadOnlySpan<byte> key, ReadOnlySpan<byte> source);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static byte[] HashData(ReadOnlySpan<byte> key, ReadOnlySpan<byte> source);
+- public static int HashData(ReadOnlySpan<byte> key, ReadOnlySpan<byte> source, Span<byte> destination);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static int HashData(ReadOnlySpan<byte> key, ReadOnlySpan<byte> source, Span<byte> destination);
+- public static ValueTask<byte[]> HashDataAsync(byte[] key, Stream source, CancellationToken cancellationToken = default(CancellationToken));
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static ValueTask<byte[]> HashDataAsync(byte[] key, Stream source, CancellationToken cancellationToken = default(CancellationToken));
+- public static ValueTask<int> HashDataAsync(ReadOnlyMemory<byte> key, Stream source, Memory<byte> destination, CancellationToken cancellationToken = default(CancellationToken));
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static ValueTask<int> HashDataAsync(ReadOnlyMemory<byte> key, Stream source, Memory<byte> destination, CancellationToken cancellationToken = default(CancellationToken));
+- public static ValueTask<byte[]> HashDataAsync(ReadOnlyMemory<byte> key, Stream source, CancellationToken cancellationToken = default(CancellationToken));
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static ValueTask<byte[]> HashDataAsync(ReadOnlyMemory<byte> key, Stream source, CancellationToken cancellationToken = default(CancellationToken));
+- public static bool TryHashData(ReadOnlySpan<byte> key, ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static bool TryHashData(ReadOnlySpan<byte> key, ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten);
+ }
+- [UnsupportedOSPlatformAttribute("browser")]
+ public abstract class MD5 : HashAlgorithm {
+- public static new MD5 Create();
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static new MD5 Create();
+- public static byte[] HashData(byte[] source);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static byte[] HashData(byte[] source);
+- public static byte[] HashData(Stream source);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static byte[] HashData(Stream source);
+- public static int HashData(Stream source, Span<byte> destination);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static int HashData(Stream source, Span<byte> destination);
+- public static byte[] HashData(ReadOnlySpan<byte> source);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static byte[] HashData(ReadOnlySpan<byte> source);
+- public static int HashData(ReadOnlySpan<byte> source, Span<byte> destination);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static int HashData(ReadOnlySpan<byte> source, Span<byte> destination);
+- public static ValueTask<int> HashDataAsync(Stream source, Memory<byte> destination, CancellationToken cancellationToken = default(CancellationToken));
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static ValueTask<int> HashDataAsync(Stream source, Memory<byte> destination, CancellationToken cancellationToken = default(CancellationToken));
+- public static ValueTask<byte[]> HashDataAsync(Stream source, CancellationToken cancellationToken = default(CancellationToken));
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static ValueTask<byte[]> HashDataAsync(Stream source, CancellationToken cancellationToken = default(CancellationToken));
+- public static bool TryHashData(ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten);
++ [UnsupportedOSPlatformAttribute("browser")]
++ public static bool TryHashData(ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten);
+ }
+ [ObsoleteAttribute("The Rijndael and RijndaelManaged types are obsolete. Use Aes instead.", DiagnosticId="SYSLIB0022", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+ public abstract class Rijndael : SymmetricAlgorithm {
++ [UnsupportedOSPlatformAttribute("browser")]
+ public static new Rijndael Create();
+ }
+ [ObsoleteAttribute("The Rijndael and RijndaelManaged types are obsolete. Use Aes instead.", DiagnosticId="SYSLIB0022", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
++ [UnsupportedOSPlatformAttribute("browser")]
+ public sealed class RijndaelManaged : Rijndael
+ public abstract class RSA : AsymmetricAlgorithm {
++ public byte[] Decrypt(ReadOnlySpan<byte> data, RSAEncryptionPadding padding);
++ public int Decrypt(ReadOnlySpan<byte> data, Span<byte> destination, RSAEncryptionPadding padding);
++ public byte[] Encrypt(ReadOnlySpan<byte> data, RSAEncryptionPadding padding);
++ public int Encrypt(ReadOnlySpan<byte> data, Span<byte> destination, RSAEncryptionPadding padding);
++ public byte[] SignData(ReadOnlySpan<byte> data, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding);
++ public int SignData(ReadOnlySpan<byte> data, Span<byte> destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding);
++ public byte[] SignHash(ReadOnlySpan<byte> hash, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding);
++ public int SignHash(ReadOnlySpan<byte> hash, Span<byte> destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.Json.Serialization.Metadata.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.Json.Serialization.Metadata.md
new file mode 100644
index 00000000..f00b8251
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.Json.Serialization.Metadata.md
@@ -0,0 +1,10 @@
+# System.Text.Json.Serialization.Metadata
+
+``` diff
+ namespace System.Text.Json.Serialization.Metadata {
+ public abstract class JsonPropertyInfo {
++ public bool IsRequired { get; set; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.Json.Serialization.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.Json.Serialization.md
new file mode 100644
index 00000000..8ed9b322
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.Json.Serialization.md
@@ -0,0 +1,14 @@
+# System.Text.Json.Serialization
+
+``` diff
+ namespace System.Text.Json.Serialization {
++ public sealed class JsonRequiredAttribute : JsonAttribute {
++ public JsonRequiredAttribute();
++ }
+- [RequiresDynamicCodeAttribute("JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.")]
+- public class JsonStringEnumConverter : JsonConverterFactory
++ [RequiresDynamicCodeAttribute("JsonStringEnumConverter cannot be statically analyzed and requires runtime code generation. Consider authoring a custom converter that is not a factory to work around the issue. See https://github.com/dotnet/runtime/issues/73124.")]
++ public class JsonStringEnumConverter : JsonConverterFactory
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.RegularExpressions.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.RegularExpressions.md
new file mode 100644
index 00000000..8e404003
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Text.RegularExpressions.md
@@ -0,0 +1,44 @@
+# System.Text.RegularExpressions
+
+``` diff
+ namespace System.Text.RegularExpressions {
++ public sealed class GeneratedRegexAttribute : Attribute {
++ public GeneratedRegexAttribute([StringSyntaxAttribute("Regex")] string pattern);
++ public GeneratedRegexAttribute([StringSyntaxAttribute("Regex", new object[]{ "options"})] string pattern, RegexOptions options);
++ public GeneratedRegexAttribute([StringSyntaxAttribute("Regex", new object[]{ "options"})] string pattern, RegexOptions options, int matchTimeoutMilliseconds);
++ public GeneratedRegexAttribute([StringSyntaxAttribute("Regex", new object[]{ "options"})] string pattern, RegexOptions options, int matchTimeoutMilliseconds, string cultureName);
++ public GeneratedRegexAttribute([StringSyntaxAttribute("Regex", new object[]{ "options"})] string pattern, RegexOptions options, string cultureName);
++ public string CultureName { get; }
++ public int MatchTimeoutMilliseconds { get; }
++ public RegexOptions Options { get; }
++ public string Pattern { get; }
++ }
+ public class Regex : ISerializable {
+- [ObsoleteAttribute("Regex.CompileToAssembly is obsolete and not supported. Use the RegexGeneratorAttribute with the regular expression source generator instead.", DiagnosticId="SYSLIB0036", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+- public static void CompileToAssembly(RegexCompilationInfo[] regexinfos, AssemblyName assemblyname);
++ [ObsoleteAttribute("Regex.CompileToAssembly is obsolete and not supported. Use the GeneratedRegexAttribute with the regular expression source generator instead.", DiagnosticId="SYSLIB0036", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
++ public static void CompileToAssembly(RegexCompilationInfo[] regexinfos, AssemblyName assemblyname);
+- [ObsoleteAttribute("Regex.CompileToAssembly is obsolete and not supported. Use the RegexGeneratorAttribute with the regular expression source generator instead.", DiagnosticId="SYSLIB0036", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+- public static void CompileToAssembly(RegexCompilationInfo[] regexinfos, AssemblyName assemblyname, CustomAttributeBuilder[]? attributes);
++ [ObsoleteAttribute("Regex.CompileToAssembly is obsolete and not supported. Use the GeneratedRegexAttribute with the regular expression source generator instead.", DiagnosticId="SYSLIB0036", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
++ public static void CompileToAssembly(RegexCompilationInfo[] regexinfos, AssemblyName assemblyname, CustomAttributeBuilder[]? attributes);
+- [ObsoleteAttribute("Regex.CompileToAssembly is obsolete and not supported. Use the RegexGeneratorAttribute with the regular expression source generator instead.", DiagnosticId="SYSLIB0036", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+- public static void CompileToAssembly(RegexCompilationInfo[] regexinfos, AssemblyName assemblyname, CustomAttributeBuilder[]? attributes, string? resourceFile);
++ [ObsoleteAttribute("Regex.CompileToAssembly is obsolete and not supported. Use the GeneratedRegexAttribute with the regular expression source generator instead.", DiagnosticId="SYSLIB0036", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
++ public static void CompileToAssembly(RegexCompilationInfo[] regexinfos, AssemblyName assemblyname, CustomAttributeBuilder[]? attributes, string? resourceFile);
+ }
+- [ObsoleteAttribute("Regex.CompileToAssembly is obsolete and not supported. Use the RegexGeneratorAttribute with the regular expression source generator instead.", DiagnosticId="SYSLIB0036", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+- public class RegexCompilationInfo
++ [ObsoleteAttribute("Regex.CompileToAssembly is obsolete and not supported. Use the GeneratedRegexAttribute with the regular expression source generator instead.", DiagnosticId="SYSLIB0036", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
++ public class RegexCompilationInfo
+- public sealed class RegexGeneratorAttribute : Attribute {
+- public RegexGeneratorAttribute([StringSyntaxAttribute("Regex")] string pattern);
+- public RegexGeneratorAttribute([StringSyntaxAttribute("Regex", new object[]{ "options"})] string pattern, RegexOptions options);
+- public RegexGeneratorAttribute([StringSyntaxAttribute("Regex", new object[]{ "options"})] string pattern, RegexOptions options, int matchTimeoutMilliseconds);
+- public int MatchTimeoutMilliseconds { get; }
+- public RegexOptions Options { get; }
+- public string Pattern { get; }
+- }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Transactions.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Transactions.md
new file mode 100644
index 00000000..aca27abf
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Transactions.md
@@ -0,0 +1,13 @@
+# System.Transactions
+
+``` diff
+ namespace System.Transactions {
+ public static class TransactionManager {
+- public static TimeSpan DefaultTimeout { get; }
++ public static TimeSpan DefaultTimeout { get; set; }
+- public static TimeSpan MaximumTimeout { get; }
++ public static TimeSpan MaximumTimeout { get; set; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Xml.Serialization.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Xml.Serialization.md
new file mode 100644
index 00000000..d900495a
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Xml.Serialization.md
@@ -0,0 +1,15 @@
+# System.Xml.Serialization
+
+``` diff
+ namespace System.Xml.Serialization {
+ public class XmlSerializer {
+- public static XmlSerializer[] FromMappings(XmlMapping[]? mappings);
++ public static XmlSerializer?[] FromMappings(XmlMapping[]? mappings);
+- public static XmlSerializer[] FromMappings(XmlMapping[]? mappings, Type? type);
++ public static XmlSerializer?[] FromMappings(XmlMapping[]? mappings, Type? type);
+- public static XmlSerializer[] FromTypes(Type[]? types);
++ public static XmlSerializer?[] FromTypes(Type[]? types);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Xml.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Xml.md
new file mode 100644
index 00000000..83acc744
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.Xml.md
@@ -0,0 +1,29 @@
+# System.Xml
+
+``` diff
+ namespace System.Xml {
+ public class XmlDocument : XmlNode {
+- public virtual XmlProcessingInstruction CreateProcessingInstruction(string target, string data);
++ public virtual XmlProcessingInstruction CreateProcessingInstruction(string target, string? data);
+ }
+ public class XmlProcessingInstruction : XmlLinkedNode {
+- protected internal XmlProcessingInstruction(string target, string data, XmlDocument doc);
++ protected internal XmlProcessingInstruction(string target, string? data, XmlDocument doc);
+- public string Data { get; set; }
++ [AllowNullAttribute]
++ public string Data { get; set; }
+- public override string InnerText { get; set; }
++ [AllowNullAttribute]
++ public override string InnerText { get; set; }
+- public string? Target { get; }
++ public string Target { get; }
+ }
+ public abstract class XmlResolver {
++ public static XmlResolver ThrowingResolver { get; }
+ }
+- public class XmlSecureResolver : XmlResolver
++ [ObsoleteAttribute("XmlSecureResolver is obsolete. Use XmlResolver.ThrowingResolver instead when attempting to forbid XML external entity resolution.", DiagnosticId="SYSLIB0047", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
++ public class XmlSecureResolver : XmlResolver
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.md
new file mode 100644
index 00000000..47d94572
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.NETCore.App/7.0-rc1_System.md
@@ -0,0 +1,336 @@
+# System
+
+``` diff
+ namespace System {
+ public readonly struct Byte : IAdditionOperators<byte, byte, byte>, IAdditiveIdentity<byte, byte>, IBinaryInteger<byte>, IBinaryNumber<byte>, IBitwiseOperators<byte, byte, byte>, IComparable, IComparable<byte>, IComparisonOperators<byte, byte, bool>, IConvertible, IDecrementOperators<byte>, IDivisionOperators<byte, byte, byte>, IEqualityOperators<byte, byte, bool>, IEquatable<byte>, IFormattable, IIncrementOperators<byte>, IMinMaxValue<byte>, IModulusOperators<byte, byte, byte>, IMultiplicativeIdentity<byte, byte>, IMultiplyOperators<byte, byte, byte>, INumber<byte>, INumberBase<byte>, IParsable<byte>, IShiftOperators<byte, int, byte>, ISpanFormattable, ISpanParsable<byte>, ISubtractionOperators<byte, byte, byte>, IUnaryNegationOperators<byte, byte>, IUnaryPlusOperators<byte, byte>, IUnsignedNumber<byte> {
++ static bool IBinaryInteger<byte>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out byte value);
++ static bool IBinaryInteger<byte>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out byte value);
+- static bool INumberBase<byte>.TryConvertToChecked<TOther>(byte value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<byte>.TryConvertToChecked<TOther>(byte value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<byte>.TryConvertToSaturating<TOther>(byte value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<byte>.TryConvertToSaturating<TOther>(byte value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<byte>.TryConvertToTruncating<TOther>(byte value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<byte>.TryConvertToTruncating<TOther>(byte value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public readonly struct Char : IAdditionOperators<char, char, char>, IAdditiveIdentity<char, char>, IBinaryInteger<char>, IBinaryNumber<char>, IBitwiseOperators<char, char, char>, IComparable, IComparable<char>, IComparisonOperators<char, char, bool>, IConvertible, IDecrementOperators<char>, IDivisionOperators<char, char, char>, IEqualityOperators<char, char, bool>, IEquatable<char>, IFormattable, IIncrementOperators<char>, IMinMaxValue<char>, IModulusOperators<char, char, char>, IMultiplicativeIdentity<char, char>, IMultiplyOperators<char, char, char>, INumber<char>, INumberBase<char>, IParsable<char>, IShiftOperators<char, int, char>, ISpanFormattable, ISpanParsable<char>, ISubtractionOperators<char, char, char>, IUnaryNegationOperators<char, char>, IUnaryPlusOperators<char, char>, IUnsignedNumber<char> {
++ static bool IBinaryInteger<char>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out char value);
++ static bool IBinaryInteger<char>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out char value);
+- static bool INumberBase<char>.TryConvertToChecked<TOther>(char value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<char>.TryConvertToChecked<TOther>(char value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<char>.TryConvertToSaturating<TOther>(char value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<char>.TryConvertToSaturating<TOther>(char value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<char>.TryConvertToTruncating<TOther>(char value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<char>.TryConvertToTruncating<TOther>(char value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public readonly struct Decimal : IAdditionOperators<decimal, decimal, decimal>, IAdditiveIdentity<decimal, decimal>, IComparable, IComparable<decimal>, IComparisonOperators<decimal, decimal, bool>, IConvertible, IDecrementOperators<decimal>, IDeserializationCallback, IDivisionOperators<decimal, decimal, decimal>, IEqualityOperators<decimal, decimal, bool>, IEquatable<decimal>, IFloatingPoint<decimal>, IFloatingPointConstants<decimal>, IFormattable, IIncrementOperators<decimal>, IMinMaxValue<decimal>, IModulusOperators<decimal, decimal, decimal>, IMultiplicativeIdentity<decimal, decimal>, IMultiplyOperators<decimal, decimal, decimal>, INumber<decimal>, INumberBase<decimal>, IParsable<decimal>, ISerializable, ISignedNumber<decimal>, ISpanFormattable, ISpanParsable<decimal>, ISubtractionOperators<decimal, decimal, decimal>, IUnaryNegationOperators<decimal, decimal>, IUnaryPlusOperators<decimal, decimal> {
+- static bool INumberBase<decimal>.TryConvertToChecked<TOther>(decimal value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<decimal>.TryConvertToChecked<TOther>(decimal value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<decimal>.TryConvertToSaturating<TOther>(decimal value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<decimal>.TryConvertToSaturating<TOther>(decimal value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<decimal>.TryConvertToTruncating<TOther>(decimal value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<decimal>.TryConvertToTruncating<TOther>(decimal value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public readonly struct Double : IAdditionOperators<double, double, double>, IAdditiveIdentity<double, double>, IBinaryFloatingPointIeee754<double>, IBinaryNumber<double>, IBitwiseOperators<double, double, double>, IComparable, IComparable<double>, IComparisonOperators<double, double, bool>, IConvertible, IDecrementOperators<double>, IDivisionOperators<double, double, double>, IEqualityOperators<double, double, bool>, IEquatable<double>, IExponentialFunctions<double>, IFloatingPoint<double>, IFloatingPointConstants<double>, IFloatingPointIeee754<double>, IFormattable, IHyperbolicFunctions<double>, IIncrementOperators<double>, ILogarithmicFunctions<double>, IMinMaxValue<double>, IModulusOperators<double, double, double>, IMultiplicativeIdentity<double, double>, IMultiplyOperators<double, double, double>, INumber<double>, INumberBase<double>, IParsable<double>, IPowerFunctions<double>, IRootFunctions<double>, ISignedNumber<double>, ISpanFormattable, ISpanParsable<double>, ISubtractionOperators<double, double, double>, ITrigonometricFunctions<double>, IUnaryNegationOperators<double, double>, IUnaryPlusOperators<double, double> {
+- static bool INumberBase<double>.TryConvertToChecked<TOther>(double value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<double>.TryConvertToChecked<TOther>(double value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<double>.TryConvertToSaturating<TOther>(double value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<double>.TryConvertToSaturating<TOther>(double value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<double>.TryConvertToTruncating<TOther>(double value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<double>.TryConvertToTruncating<TOther>(double value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public abstract class Enum : ValueType, IComparable, IConvertible, IFormattable {
+- [RequiresDynamicCodeAttribute("It might not be possible to create an array of the enum type at runtime. Use the GetValues<TEnum> overload instead.")]
+- public static Array GetValues(Type enumType);
++ [RequiresDynamicCodeAttribute("It might not be possible to create an array of the enum type at runtime. Use the GetValues<TEnum> overload or the GetValuesAsUnderlyingType method instead.")]
++ public static Array GetValues(Type enumType);
++ public static Array GetValuesAsUnderlyingType(Type enumType);
++ public static Array GetValuesAsUnderlyingType<TEnum>() where TEnum : struct;
+ }
+ public readonly struct Half : IAdditionOperators<Half, Half, Half>, IAdditiveIdentity<Half, Half>, IBinaryFloatingPointIeee754<Half>, IBinaryNumber<Half>, IBitwiseOperators<Half, Half, Half>, IComparable, IComparable<Half>, IComparisonOperators<Half, Half, bool>, IDecrementOperators<Half>, IDivisionOperators<Half, Half, Half>, IEqualityOperators<Half, Half, bool>, IEquatable<Half>, IExponentialFunctions<Half>, IFloatingPoint<Half>, IFloatingPointConstants<Half>, IFloatingPointIeee754<Half>, IFormattable, IHyperbolicFunctions<Half>, IIncrementOperators<Half>, ILogarithmicFunctions<Half>, IMinMaxValue<Half>, IModulusOperators<Half, Half, Half>, IMultiplicativeIdentity<Half, Half>, IMultiplyOperators<Half, Half, Half>, INumber<Half>, INumberBase<Half>, IParsable<Half>, IPowerFunctions<Half>, IRootFunctions<Half>, ISignedNumber<Half>, ISpanFormattable, ISpanParsable<Half>, ISubtractionOperators<Half, Half, Half>, ITrigonometricFunctions<Half>, IUnaryNegationOperators<Half, Half>, IUnaryPlusOperators<Half, Half> {
+- static bool INumberBase<Half>.TryConvertToChecked<TOther>(Half value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<Half>.TryConvertToChecked<TOther>(Half value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<Half>.TryConvertToSaturating<TOther>(Half value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<Half>.TryConvertToSaturating<TOther>(Half value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<Half>.TryConvertToTruncating<TOther>(Half value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<Half>.TryConvertToTruncating<TOther>(Half value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public readonly struct Int128 : IAdditionOperators<Int128, Int128, Int128>, IAdditiveIdentity<Int128, Int128>, IBinaryInteger<Int128>, IBinaryNumber<Int128>, IBitwiseOperators<Int128, Int128, Int128>, IComparable, IComparable<Int128>, IComparisonOperators<Int128, Int128, bool>, IDecrementOperators<Int128>, IDivisionOperators<Int128, Int128, Int128>, IEqualityOperators<Int128, Int128, bool>, IEquatable<Int128>, IFormattable, IIncrementOperators<Int128>, IMinMaxValue<Int128>, IModulusOperators<Int128, Int128, Int128>, IMultiplicativeIdentity<Int128, Int128>, IMultiplyOperators<Int128, Int128, Int128>, INumber<Int128>, INumberBase<Int128>, IParsable<Int128>, IShiftOperators<Int128, int, Int128>, ISignedNumber<Int128>, ISpanFormattable, ISpanParsable<Int128>, ISubtractionOperators<Int128, Int128, Int128>, IUnaryNegationOperators<Int128, Int128>, IUnaryPlusOperators<Int128, Int128> {
++ static bool IBinaryInteger<Int128>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out Int128 value);
++ static bool IBinaryInteger<Int128>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out Int128 value);
+- static bool INumberBase<Int128>.TryConvertToChecked<TOther>(Int128 value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<Int128>.TryConvertToChecked<TOther>(Int128 value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<Int128>.TryConvertToSaturating<TOther>(Int128 value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<Int128>.TryConvertToSaturating<TOther>(Int128 value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<Int128>.TryConvertToTruncating<TOther>(Int128 value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<Int128>.TryConvertToTruncating<TOther>(Int128 value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public readonly struct Int16 : IAdditionOperators<short, short, short>, IAdditiveIdentity<short, short>, IBinaryInteger<short>, IBinaryNumber<short>, IBitwiseOperators<short, short, short>, IComparable, IComparable<short>, IComparisonOperators<short, short, bool>, IConvertible, IDecrementOperators<short>, IDivisionOperators<short, short, short>, IEqualityOperators<short, short, bool>, IEquatable<short>, IFormattable, IIncrementOperators<short>, IMinMaxValue<short>, IModulusOperators<short, short, short>, IMultiplicativeIdentity<short, short>, IMultiplyOperators<short, short, short>, INumber<short>, INumberBase<short>, IParsable<short>, IShiftOperators<short, int, short>, ISignedNumber<short>, ISpanFormattable, ISpanParsable<short>, ISubtractionOperators<short, short, short>, IUnaryNegationOperators<short, short>, IUnaryPlusOperators<short, short> {
++ static bool IBinaryInteger<short>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out short value);
++ static bool IBinaryInteger<short>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out short value);
+- static bool INumberBase<short>.TryConvertToChecked<TOther>(short value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<short>.TryConvertToChecked<TOther>(short value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<short>.TryConvertToSaturating<TOther>(short value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<short>.TryConvertToSaturating<TOther>(short value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<short>.TryConvertToTruncating<TOther>(short value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<short>.TryConvertToTruncating<TOther>(short value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public readonly struct Int32 : IAdditionOperators<int, int, int>, IAdditiveIdentity<int, int>, IBinaryInteger<int>, IBinaryNumber<int>, IBitwiseOperators<int, int, int>, IComparable, IComparable<int>, IComparisonOperators<int, int, bool>, IConvertible, IDecrementOperators<int>, IDivisionOperators<int, int, int>, IEqualityOperators<int, int, bool>, IEquatable<int>, IFormattable, IIncrementOperators<int>, IMinMaxValue<int>, IModulusOperators<int, int, int>, IMultiplicativeIdentity<int, int>, IMultiplyOperators<int, int, int>, INumber<int>, INumberBase<int>, IParsable<int>, IShiftOperators<int, int, int>, ISignedNumber<int>, ISpanFormattable, ISpanParsable<int>, ISubtractionOperators<int, int, int>, IUnaryNegationOperators<int, int>, IUnaryPlusOperators<int, int> {
++ static bool IBinaryInteger<int>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out int value);
++ static bool IBinaryInteger<int>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out int value);
+- static bool INumberBase<int>.TryConvertToChecked<TOther>(int value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<int>.TryConvertToChecked<TOther>(int value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<int>.TryConvertToSaturating<TOther>(int value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<int>.TryConvertToSaturating<TOther>(int value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<int>.TryConvertToTruncating<TOther>(int value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<int>.TryConvertToTruncating<TOther>(int value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public readonly struct Int64 : IAdditionOperators<long, long, long>, IAdditiveIdentity<long, long>, IBinaryInteger<long>, IBinaryNumber<long>, IBitwiseOperators<long, long, long>, IComparable, IComparable<long>, IComparisonOperators<long, long, bool>, IConvertible, IDecrementOperators<long>, IDivisionOperators<long, long, long>, IEqualityOperators<long, long, bool>, IEquatable<long>, IFormattable, IIncrementOperators<long>, IMinMaxValue<long>, IModulusOperators<long, long, long>, IMultiplicativeIdentity<long, long>, IMultiplyOperators<long, long, long>, INumber<long>, INumberBase<long>, IParsable<long>, IShiftOperators<long, int, long>, ISignedNumber<long>, ISpanFormattable, ISpanParsable<long>, ISubtractionOperators<long, long, long>, IUnaryNegationOperators<long, long>, IUnaryPlusOperators<long, long> {
++ static bool IBinaryInteger<long>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out long value);
++ static bool IBinaryInteger<long>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out long value);
+- static bool INumberBase<long>.TryConvertToChecked<TOther>(long value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<long>.TryConvertToChecked<TOther>(long value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<long>.TryConvertToSaturating<TOther>(long value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<long>.TryConvertToSaturating<TOther>(long value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<long>.TryConvertToTruncating<TOther>(long value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<long>.TryConvertToTruncating<TOther>(long value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public readonly struct IntPtr : IAdditionOperators<IntPtr, IntPtr, IntPtr>, IAdditiveIdentity<IntPtr, IntPtr>, IBinaryInteger<IntPtr>, IBinaryNumber<IntPtr>, IBitwiseOperators<IntPtr, IntPtr, IntPtr>, IComparable, IComparable<IntPtr>, IComparisonOperators<IntPtr, IntPtr, bool>, IDecrementOperators<IntPtr>, IDivisionOperators<IntPtr, IntPtr, IntPtr>, IEqualityOperators<IntPtr, IntPtr, bool>, IEquatable<IntPtr>, IFormattable, IIncrementOperators<IntPtr>, IMinMaxValue<IntPtr>, IModulusOperators<IntPtr, IntPtr, IntPtr>, IMultiplicativeIdentity<IntPtr, IntPtr>, IMultiplyOperators<IntPtr, IntPtr, IntPtr>, INumber<IntPtr>, INumberBase<IntPtr>, IParsable<IntPtr>, ISerializable, IShiftOperators<IntPtr, int, IntPtr>, ISignedNumber<IntPtr>, ISpanFormattable, ISpanParsable<IntPtr>, ISubtractionOperators<IntPtr, IntPtr, IntPtr>, IUnaryNegationOperators<IntPtr, IntPtr>, IUnaryPlusOperators<IntPtr, IntPtr> {
++ static bool IBinaryInteger<IntPtr>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out IntPtr value);
++ static bool IBinaryInteger<IntPtr>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out IntPtr value);
+- static bool INumberBase<IntPtr>.TryConvertToChecked<TOther>(IntPtr value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<IntPtr>.TryConvertToChecked<TOther>(IntPtr value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<IntPtr>.TryConvertToSaturating<TOther>(IntPtr value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<IntPtr>.TryConvertToSaturating<TOther>(IntPtr value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<IntPtr>.TryConvertToTruncating<TOther>(IntPtr value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<IntPtr>.TryConvertToTruncating<TOther>(IntPtr value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+- public interface IParsable<TSelf> where TSelf : IParsable<TSelf>
++ public interface IParsable<TSelf> where TSelf : IParsable<TSelf>?
+- public interface ISpanParsable<TSelf> : IParsable<TSelf> where TSelf : ISpanParsable<TSelf>
++ public interface ISpanParsable<TSelf> : IParsable<TSelf> where TSelf : ISpanParsable<TSelf>?
+ public static class MemoryExtensions {
+- public static bool Contains<T>(this ReadOnlySpan<T> span, T value) where T : IEquatable<T>;
++ public static bool Contains<T>(this ReadOnlySpan<T> span, T value) where T : IEquatable<T>?;
+- public static bool Contains<T>(this Span<T> span, T value) where T : IEquatable<T>;
++ public static bool Contains<T>(this Span<T> span, T value) where T : IEquatable<T>?;
+- public static bool EndsWith<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>;
++ public static bool EndsWith<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>?;
+- public static bool EndsWith<T>(this Span<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>;
++ public static bool EndsWith<T>(this Span<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>?;
+- public static int IndexOf<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>;
++ public static int IndexOf<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>?;
+- public static int IndexOf<T>(this ReadOnlySpan<T> span, T value) where T : IEquatable<T>;
++ public static int IndexOf<T>(this ReadOnlySpan<T> span, T value) where T : IEquatable<T>?;
+- public static int IndexOf<T>(this Span<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>;
++ public static int IndexOf<T>(this Span<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>?;
+- public static int IndexOf<T>(this Span<T> span, T value) where T : IEquatable<T>;
++ public static int IndexOf<T>(this Span<T> span, T value) where T : IEquatable<T>?;
+- public static int IndexOfAny<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>;
++ public static int IndexOfAny<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>?;
+- public static int IndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1) where T : IEquatable<T>;
++ public static int IndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1) where T : IEquatable<T>?;
+- public static int IndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2) where T : IEquatable<T>;
++ public static int IndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2) where T : IEquatable<T>?;
+- public static int IndexOfAny<T>(this Span<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>;
++ public static int IndexOfAny<T>(this Span<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>?;
+- public static int IndexOfAny<T>(this Span<T> span, T value0, T value1) where T : IEquatable<T>;
++ public static int IndexOfAny<T>(this Span<T> span, T value0, T value1) where T : IEquatable<T>?;
+- public static int IndexOfAny<T>(this Span<T> span, T value0, T value1, T value2) where T : IEquatable<T>;
++ public static int IndexOfAny<T>(this Span<T> span, T value0, T value1, T value2) where T : IEquatable<T>?;
+- public static int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>;
++ public static int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>?;
+- public static int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value) where T : IEquatable<T>;
++ public static int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value) where T : IEquatable<T>?;
+- public static int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1) where T : IEquatable<T>;
++ public static int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1) where T : IEquatable<T>?;
+- public static int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2) where T : IEquatable<T>;
++ public static int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2) where T : IEquatable<T>?;
+- public static int IndexOfAnyExcept<T>(this Span<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>;
++ public static int IndexOfAnyExcept<T>(this Span<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>?;
+- public static int IndexOfAnyExcept<T>(this Span<T> span, T value) where T : IEquatable<T>;
++ public static int IndexOfAnyExcept<T>(this Span<T> span, T value) where T : IEquatable<T>?;
+- public static int IndexOfAnyExcept<T>(this Span<T> span, T value0, T value1) where T : IEquatable<T>;
++ public static int IndexOfAnyExcept<T>(this Span<T> span, T value0, T value1) where T : IEquatable<T>?;
+- public static int IndexOfAnyExcept<T>(this Span<T> span, T value0, T value1, T value2) where T : IEquatable<T>;
++ public static int IndexOfAnyExcept<T>(this Span<T> span, T value0, T value1, T value2) where T : IEquatable<T>?;
+- public static int LastIndexOf<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>;
++ public static int LastIndexOf<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>?;
+- public static int LastIndexOf<T>(this ReadOnlySpan<T> span, T value) where T : IEquatable<T>;
++ public static int LastIndexOf<T>(this ReadOnlySpan<T> span, T value) where T : IEquatable<T>?;
+- public static int LastIndexOf<T>(this Span<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>;
++ public static int LastIndexOf<T>(this Span<T> span, ReadOnlySpan<T> value) where T : IEquatable<T?>;
+- public static int LastIndexOf<T>(this Span<T> span, T value) where T : IEquatable<T>;
++ public static int LastIndexOf<T>(this Span<T> span, T value) where T : IEquatable<T>?;
+- public static int LastIndexOfAny<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>;
++ public static int LastIndexOfAny<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>?;
+- public static int LastIndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1) where T : IEquatable<T>;
++ public static int LastIndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1) where T : IEquatable<T>?;
+- public static int LastIndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2) where T : IEquatable<T>;
++ public static int LastIndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2) where T : IEquatable<T>?;
+- public static int LastIndexOfAny<T>(this Span<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>;
++ public static int LastIndexOfAny<T>(this Span<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>?;
+- public static int LastIndexOfAny<T>(this Span<T> span, T value0, T value1) where T : IEquatable<T>;
++ public static int LastIndexOfAny<T>(this Span<T> span, T value0, T value1) where T : IEquatable<T>?;
+- public static int LastIndexOfAny<T>(this Span<T> span, T value0, T value1, T value2) where T : IEquatable<T>;
++ public static int LastIndexOfAny<T>(this Span<T> span, T value0, T value1, T value2) where T : IEquatable<T>?;
+- public static int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>;
++ public static int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>?;
+- public static int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value) where T : IEquatable<T>;
++ public static int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value) where T : IEquatable<T>?;
+- public static int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1) where T : IEquatable<T>;
++ public static int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1) where T : IEquatable<T>?;
+- public static int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2) where T : IEquatable<T>;
++ public static int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2) where T : IEquatable<T>?;
+- public static int LastIndexOfAnyExcept<T>(this Span<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>;
++ public static int LastIndexOfAnyExcept<T>(this Span<T> span, ReadOnlySpan<T> values) where T : IEquatable<T>?;
+- public static int LastIndexOfAnyExcept<T>(this Span<T> span, T value) where T : IEquatable<T>;
++ public static int LastIndexOfAnyExcept<T>(this Span<T> span, T value) where T : IEquatable<T>?;
+- public static int LastIndexOfAnyExcept<T>(this Span<T> span, T value0, T value1) where T : IEquatable<T>;
++ public static int LastIndexOfAnyExcept<T>(this Span<T> span, T value0, T value1) where T : IEquatable<T>?;
+- public static int LastIndexOfAnyExcept<T>(this Span<T> span, T value0, T value1, T value2) where T : IEquatable<T>;
++ public static int LastIndexOfAnyExcept<T>(this Span<T> span, T value0, T value1, T value2) where T : IEquatable<T>?;
+- public static int SequenceCompareTo<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> other) where T : IComparable<T>;
++ public static int SequenceCompareTo<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> other) where T : IComparable<T>?;
+- public static int SequenceCompareTo<T>(this Span<T> span, ReadOnlySpan<T> other) where T : IComparable<T>;
++ public static int SequenceCompareTo<T>(this Span<T> span, ReadOnlySpan<T> other) where T : IComparable<T>?;
+- public static bool SequenceEqual<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> other) where T : IEquatable<T>;
++ public static bool SequenceEqual<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> other) where T : IEquatable<T>?;
+- public static bool SequenceEqual<T>(this Span<T> span, ReadOnlySpan<T> other) where T : IEquatable<T>;
++ public static bool SequenceEqual<T>(this Span<T> span, ReadOnlySpan<T> other) where T : IEquatable<T>?;
+- public static bool StartsWith<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>;
++ public static bool StartsWith<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>?;
+- public static bool StartsWith<T>(this Span<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>;
++ public static bool StartsWith<T>(this Span<T> span, ReadOnlySpan<T> value) where T : IEquatable<T>?;
+- public static Memory<T> Trim<T>(this Memory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static Memory<T> Trim<T>(this Memory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static Memory<T> Trim<T>(this Memory<T> memory, T trimElement) where T : IEquatable<T>;
++ public static Memory<T> Trim<T>(this Memory<T> memory, T trimElement) where T : IEquatable<T>?;
+- public static ReadOnlyMemory<T> Trim<T>(this ReadOnlyMemory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static ReadOnlyMemory<T> Trim<T>(this ReadOnlyMemory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static ReadOnlyMemory<T> Trim<T>(this ReadOnlyMemory<T> memory, T trimElement) where T : IEquatable<T>;
++ public static ReadOnlyMemory<T> Trim<T>(this ReadOnlyMemory<T> memory, T trimElement) where T : IEquatable<T>?;
+- public static ReadOnlySpan<T> Trim<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static ReadOnlySpan<T> Trim<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static ReadOnlySpan<T> Trim<T>(this ReadOnlySpan<T> span, T trimElement) where T : IEquatable<T>;
++ public static ReadOnlySpan<T> Trim<T>(this ReadOnlySpan<T> span, T trimElement) where T : IEquatable<T>?;
+- public static Span<T> Trim<T>(this Span<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static Span<T> Trim<T>(this Span<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static Span<T> Trim<T>(this Span<T> span, T trimElement) where T : IEquatable<T>;
++ public static Span<T> Trim<T>(this Span<T> span, T trimElement) where T : IEquatable<T>?;
+- public static Memory<T> TrimEnd<T>(this Memory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static Memory<T> TrimEnd<T>(this Memory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static Memory<T> TrimEnd<T>(this Memory<T> memory, T trimElement) where T : IEquatable<T>;
++ public static Memory<T> TrimEnd<T>(this Memory<T> memory, T trimElement) where T : IEquatable<T>?;
+- public static ReadOnlyMemory<T> TrimEnd<T>(this ReadOnlyMemory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static ReadOnlyMemory<T> TrimEnd<T>(this ReadOnlyMemory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static ReadOnlyMemory<T> TrimEnd<T>(this ReadOnlyMemory<T> memory, T trimElement) where T : IEquatable<T>;
++ public static ReadOnlyMemory<T> TrimEnd<T>(this ReadOnlyMemory<T> memory, T trimElement) where T : IEquatable<T>?;
+- public static ReadOnlySpan<T> TrimEnd<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static ReadOnlySpan<T> TrimEnd<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static ReadOnlySpan<T> TrimEnd<T>(this ReadOnlySpan<T> span, T trimElement) where T : IEquatable<T>;
++ public static ReadOnlySpan<T> TrimEnd<T>(this ReadOnlySpan<T> span, T trimElement) where T : IEquatable<T>?;
+- public static Span<T> TrimEnd<T>(this Span<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static Span<T> TrimEnd<T>(this Span<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static Span<T> TrimEnd<T>(this Span<T> span, T trimElement) where T : IEquatable<T>;
++ public static Span<T> TrimEnd<T>(this Span<T> span, T trimElement) where T : IEquatable<T>?;
+- public static Memory<T> TrimStart<T>(this Memory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static Memory<T> TrimStart<T>(this Memory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static Memory<T> TrimStart<T>(this Memory<T> memory, T trimElement) where T : IEquatable<T>;
++ public static Memory<T> TrimStart<T>(this Memory<T> memory, T trimElement) where T : IEquatable<T>?;
+- public static ReadOnlyMemory<T> TrimStart<T>(this ReadOnlyMemory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static ReadOnlyMemory<T> TrimStart<T>(this ReadOnlyMemory<T> memory, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static ReadOnlyMemory<T> TrimStart<T>(this ReadOnlyMemory<T> memory, T trimElement) where T : IEquatable<T>;
++ public static ReadOnlyMemory<T> TrimStart<T>(this ReadOnlyMemory<T> memory, T trimElement) where T : IEquatable<T>?;
+- public static ReadOnlySpan<T> TrimStart<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static ReadOnlySpan<T> TrimStart<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static ReadOnlySpan<T> TrimStart<T>(this ReadOnlySpan<T> span, T trimElement) where T : IEquatable<T>;
++ public static ReadOnlySpan<T> TrimStart<T>(this ReadOnlySpan<T> span, T trimElement) where T : IEquatable<T>?;
+- public static Span<T> TrimStart<T>(this Span<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>;
++ public static Span<T> TrimStart<T>(this Span<T> span, ReadOnlySpan<T> trimElements) where T : IEquatable<T>?;
+- public static Span<T> TrimStart<T>(this Span<T> span, T trimElement) where T : IEquatable<T>;
++ public static Span<T> TrimStart<T>(this Span<T> span, T trimElement) where T : IEquatable<T>?;
+ }
+ [CLSCompliantAttribute(false)]
+ public readonly struct SByte : IAdditionOperators<sbyte, sbyte, sbyte>, IAdditiveIdentity<sbyte, sbyte>, IBinaryInteger<sbyte>, IBinaryNumber<sbyte>, IBitwiseOperators<sbyte, sbyte, sbyte>, IComparable, IComparable<sbyte>, IComparisonOperators<sbyte, sbyte, bool>, IConvertible, IDecrementOperators<sbyte>, IDivisionOperators<sbyte, sbyte, sbyte>, IEqualityOperators<sbyte, sbyte, bool>, IEquatable<sbyte>, IFormattable, IIncrementOperators<sbyte>, IMinMaxValue<sbyte>, IModulusOperators<sbyte, sbyte, sbyte>, IMultiplicativeIdentity<sbyte, sbyte>, IMultiplyOperators<sbyte, sbyte, sbyte>, INumber<sbyte>, INumberBase<sbyte>, IParsable<sbyte>, IShiftOperators<sbyte, int, sbyte>, ISignedNumber<sbyte>, ISpanFormattable, ISpanParsable<sbyte>, ISubtractionOperators<sbyte, sbyte, sbyte>, IUnaryNegationOperators<sbyte, sbyte>, IUnaryPlusOperators<sbyte, sbyte> {
++ static bool IBinaryInteger<sbyte>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out sbyte value);
++ static bool IBinaryInteger<sbyte>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out sbyte value);
+- static bool INumberBase<sbyte>.TryConvertToChecked<TOther>(sbyte value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<sbyte>.TryConvertToChecked<TOther>(sbyte value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<sbyte>.TryConvertToSaturating<TOther>(sbyte value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<sbyte>.TryConvertToSaturating<TOther>(sbyte value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<sbyte>.TryConvertToTruncating<TOther>(sbyte value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<sbyte>.TryConvertToTruncating<TOther>(sbyte value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public readonly struct Single : IAdditionOperators<float, float, float>, IAdditiveIdentity<float, float>, IBinaryFloatingPointIeee754<float>, IBinaryNumber<float>, IBitwiseOperators<float, float, float>, IComparable, IComparable<float>, IComparisonOperators<float, float, bool>, IConvertible, IDecrementOperators<float>, IDivisionOperators<float, float, float>, IEqualityOperators<float, float, bool>, IEquatable<float>, IExponentialFunctions<float>, IFloatingPoint<float>, IFloatingPointConstants<float>, IFloatingPointIeee754<float>, IFormattable, IHyperbolicFunctions<float>, IIncrementOperators<float>, ILogarithmicFunctions<float>, IMinMaxValue<float>, IModulusOperators<float, float, float>, IMultiplicativeIdentity<float, float>, IMultiplyOperators<float, float, float>, INumber<float>, INumberBase<float>, IParsable<float>, IPowerFunctions<float>, IRootFunctions<float>, ISignedNumber<float>, ISpanFormattable, ISpanParsable<float>, ISubtractionOperators<float, float, float>, ITrigonometricFunctions<float>, IUnaryNegationOperators<float, float>, IUnaryPlusOperators<float, float> {
+- static bool INumberBase<float>.TryConvertToChecked<TOther>(float value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<float>.TryConvertToChecked<TOther>(float value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<float>.TryConvertToSaturating<TOther>(float value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<float>.TryConvertToSaturating<TOther>(float value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<float>.TryConvertToTruncating<TOther>(float value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<float>.TryConvertToTruncating<TOther>(float value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ public abstract class Type : MemberInfo, IReflect {
+- [RequiresDynamicCodeAttribute("It might not be possible to create an array of the enum type at runtime. Use Enum.GetValues<TEnum> instead.")]
+- public virtual Array GetEnumValues();
++ [RequiresDynamicCodeAttribute("It might not be possible to create an array of the enum type at runtime. Use the GetEnumValues<TEnum> overload or the GetEnumValuesAsUnderlyingType method instead.")]
++ public virtual Array GetEnumValues();
++ public virtual Array GetEnumValuesAsUnderlyingType();
+ }
+ [CLSCompliantAttribute(false)]
+ public readonly struct UInt128 : IAdditionOperators<UInt128, UInt128, UInt128>, IAdditiveIdentity<UInt128, UInt128>, IBinaryInteger<UInt128>, IBinaryNumber<UInt128>, IBitwiseOperators<UInt128, UInt128, UInt128>, IComparable, IComparable<UInt128>, IComparisonOperators<UInt128, UInt128, bool>, IDecrementOperators<UInt128>, IDivisionOperators<UInt128, UInt128, UInt128>, IEqualityOperators<UInt128, UInt128, bool>, IEquatable<UInt128>, IFormattable, IIncrementOperators<UInt128>, IMinMaxValue<UInt128>, IModulusOperators<UInt128, UInt128, UInt128>, IMultiplicativeIdentity<UInt128, UInt128>, IMultiplyOperators<UInt128, UInt128, UInt128>, INumber<UInt128>, INumberBase<UInt128>, IParsable<UInt128>, IShiftOperators<UInt128, int, UInt128>, ISpanFormattable, ISpanParsable<UInt128>, ISubtractionOperators<UInt128, UInt128, UInt128>, IUnaryNegationOperators<UInt128, UInt128>, IUnaryPlusOperators<UInt128, UInt128>, IUnsignedNumber<UInt128> {
++ static bool IBinaryInteger<UInt128>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out UInt128 value);
++ static bool IBinaryInteger<UInt128>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out UInt128 value);
+- static bool INumberBase<UInt128>.TryConvertToChecked<TOther>(UInt128 value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<UInt128>.TryConvertToChecked<TOther>(UInt128 value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<UInt128>.TryConvertToSaturating<TOther>(UInt128 value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<UInt128>.TryConvertToSaturating<TOther>(UInt128 value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<UInt128>.TryConvertToTruncating<TOther>(UInt128 value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<UInt128>.TryConvertToTruncating<TOther>(UInt128 value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ [CLSCompliantAttribute(false)]
+ public readonly struct UInt16 : IAdditionOperators<ushort, ushort, ushort>, IAdditiveIdentity<ushort, ushort>, IBinaryInteger<ushort>, IBinaryNumber<ushort>, IBitwiseOperators<ushort, ushort, ushort>, IComparable, IComparable<ushort>, IComparisonOperators<ushort, ushort, bool>, IConvertible, IDecrementOperators<ushort>, IDivisionOperators<ushort, ushort, ushort>, IEqualityOperators<ushort, ushort, bool>, IEquatable<ushort>, IFormattable, IIncrementOperators<ushort>, IMinMaxValue<ushort>, IModulusOperators<ushort, ushort, ushort>, IMultiplicativeIdentity<ushort, ushort>, IMultiplyOperators<ushort, ushort, ushort>, INumber<ushort>, INumberBase<ushort>, IParsable<ushort>, IShiftOperators<ushort, int, ushort>, ISpanFormattable, ISpanParsable<ushort>, ISubtractionOperators<ushort, ushort, ushort>, IUnaryNegationOperators<ushort, ushort>, IUnaryPlusOperators<ushort, ushort>, IUnsignedNumber<ushort> {
++ static bool IBinaryInteger<ushort>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out ushort value);
++ static bool IBinaryInteger<ushort>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out ushort value);
+- static bool INumberBase<ushort>.TryConvertToChecked<TOther>(ushort value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<ushort>.TryConvertToChecked<TOther>(ushort value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<ushort>.TryConvertToSaturating<TOther>(ushort value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<ushort>.TryConvertToSaturating<TOther>(ushort value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<ushort>.TryConvertToTruncating<TOther>(ushort value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<ushort>.TryConvertToTruncating<TOther>(ushort value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ [CLSCompliantAttribute(false)]
+ public readonly struct UInt32 : IAdditionOperators<uint, uint, uint>, IAdditiveIdentity<uint, uint>, IBinaryInteger<uint>, IBinaryNumber<uint>, IBitwiseOperators<uint, uint, uint>, IComparable, IComparable<uint>, IComparisonOperators<uint, uint, bool>, IConvertible, IDecrementOperators<uint>, IDivisionOperators<uint, uint, uint>, IEqualityOperators<uint, uint, bool>, IEquatable<uint>, IFormattable, IIncrementOperators<uint>, IMinMaxValue<uint>, IModulusOperators<uint, uint, uint>, IMultiplicativeIdentity<uint, uint>, IMultiplyOperators<uint, uint, uint>, INumber<uint>, INumberBase<uint>, IParsable<uint>, IShiftOperators<uint, int, uint>, ISpanFormattable, ISpanParsable<uint>, ISubtractionOperators<uint, uint, uint>, IUnaryNegationOperators<uint, uint>, IUnaryPlusOperators<uint, uint>, IUnsignedNumber<uint> {
++ static bool IBinaryInteger<uint>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out uint value);
++ static bool IBinaryInteger<uint>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out uint value);
+- static bool INumberBase<uint>.TryConvertToChecked<TOther>(uint value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<uint>.TryConvertToChecked<TOther>(uint value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<uint>.TryConvertToSaturating<TOther>(uint value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<uint>.TryConvertToSaturating<TOther>(uint value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<uint>.TryConvertToTruncating<TOther>(uint value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<uint>.TryConvertToTruncating<TOther>(uint value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ [CLSCompliantAttribute(false)]
+ public readonly struct UInt64 : IAdditionOperators<ulong, ulong, ulong>, IAdditiveIdentity<ulong, ulong>, IBinaryInteger<ulong>, IBinaryNumber<ulong>, IBitwiseOperators<ulong, ulong, ulong>, IComparable, IComparable<ulong>, IComparisonOperators<ulong, ulong, bool>, IConvertible, IDecrementOperators<ulong>, IDivisionOperators<ulong, ulong, ulong>, IEqualityOperators<ulong, ulong, bool>, IEquatable<ulong>, IFormattable, IIncrementOperators<ulong>, IMinMaxValue<ulong>, IModulusOperators<ulong, ulong, ulong>, IMultiplicativeIdentity<ulong, ulong>, IMultiplyOperators<ulong, ulong, ulong>, INumber<ulong>, INumberBase<ulong>, IParsable<ulong>, IShiftOperators<ulong, int, ulong>, ISpanFormattable, ISpanParsable<ulong>, ISubtractionOperators<ulong, ulong, ulong>, IUnaryNegationOperators<ulong, ulong>, IUnaryPlusOperators<ulong, ulong>, IUnsignedNumber<ulong> {
++ static bool IBinaryInteger<ulong>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out ulong value);
++ static bool IBinaryInteger<ulong>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out ulong value);
+- static bool INumberBase<ulong>.TryConvertToChecked<TOther>(ulong value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<ulong>.TryConvertToChecked<TOther>(ulong value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<ulong>.TryConvertToSaturating<TOther>(ulong value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<ulong>.TryConvertToSaturating<TOther>(ulong value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<ulong>.TryConvertToTruncating<TOther>(ulong value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<ulong>.TryConvertToTruncating<TOther>(ulong value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ [CLSCompliantAttribute(false)]
+ public readonly struct UIntPtr : IAdditionOperators<UIntPtr, UIntPtr, UIntPtr>, IAdditiveIdentity<UIntPtr, UIntPtr>, IBinaryInteger<UIntPtr>, IBinaryNumber<UIntPtr>, IBitwiseOperators<UIntPtr, UIntPtr, UIntPtr>, IComparable, IComparable<UIntPtr>, IComparisonOperators<UIntPtr, UIntPtr, bool>, IDecrementOperators<UIntPtr>, IDivisionOperators<UIntPtr, UIntPtr, UIntPtr>, IEqualityOperators<UIntPtr, UIntPtr, bool>, IEquatable<UIntPtr>, IFormattable, IIncrementOperators<UIntPtr>, IMinMaxValue<UIntPtr>, IModulusOperators<UIntPtr, UIntPtr, UIntPtr>, IMultiplicativeIdentity<UIntPtr, UIntPtr>, IMultiplyOperators<UIntPtr, UIntPtr, UIntPtr>, INumber<UIntPtr>, INumberBase<UIntPtr>, IParsable<UIntPtr>, ISerializable, IShiftOperators<UIntPtr, int, UIntPtr>, ISpanFormattable, ISpanParsable<UIntPtr>, ISubtractionOperators<UIntPtr, UIntPtr, UIntPtr>, IUnaryNegationOperators<UIntPtr, UIntPtr>, IUnaryPlusOperators<UIntPtr, UIntPtr>, IUnsignedNumber<UIntPtr> {
++ static bool IBinaryInteger<UIntPtr>.TryReadBigEndian(ReadOnlySpan<byte> source, bool isUnsigned, out UIntPtr value);
++ static bool IBinaryInteger<UIntPtr>.TryReadLittleEndian(ReadOnlySpan<byte> source, bool isUnsigned, out UIntPtr value);
+- static bool INumberBase<UIntPtr>.TryConvertToChecked<TOther>(UIntPtr value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<UIntPtr>.TryConvertToChecked<TOther>(UIntPtr value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<UIntPtr>.TryConvertToSaturating<TOther>(UIntPtr value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<UIntPtr>.TryConvertToSaturating<TOther>(UIntPtr value, [MaybeNullWhenAttribute(false)] out TOther result);
+- static bool INumberBase<UIntPtr>.TryConvertToTruncating<TOther>(UIntPtr value, [NotNullWhenAttribute(true)] out TOther result);
++ static bool INumberBase<UIntPtr>.TryConvertToTruncating<TOther>(UIntPtr value, [MaybeNullWhenAttribute(false)] out TOther result);
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1.md
new file mode 100644
index 00000000..9704d0ec
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1.md
@@ -0,0 +1,11 @@
+# API Difference 7.0-preview7 vs 7.0-rc1
+
+API listing follows standard diff formatting.
+Lines preceded by a '+' are additions and a '-' indicates removal.
+
+* [System.Diagnostics](7.0-rc1_System.Diagnostics.md)
+* [System.Diagnostics.Eventing.Reader](7.0-rc1_System.Diagnostics.Eventing.Reader.md)
+* [System.Resources.Tools](7.0-rc1_System.Resources.Tools.md)
+* [System.Windows.Forms](7.0-rc1_System.Windows.Forms.md)
+* [System.Windows.Forms.Design](7.0-rc1_System.Windows.Forms.Design.md)
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Diagnostics.Eventing.Reader.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Diagnostics.Eventing.Reader.md
new file mode 100644
index 00000000..845387d4
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Diagnostics.Eventing.Reader.md
@@ -0,0 +1,12 @@
+# System.Diagnostics.Eventing.Reader
+
+``` diff
+ namespace System.Diagnostics.Eventing.Reader {
+- public class EventBookmark {
++ public sealed class EventBookmark {
++ public EventBookmark(string bookmarkXml);
++ public string BookmarkXml { get; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Diagnostics.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Diagnostics.md
new file mode 100644
index 00000000..1258e844
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Diagnostics.md
@@ -0,0 +1,10 @@
+# System.Diagnostics
+
+``` diff
+ namespace System.Diagnostics {
++ public static class TraceConfiguration {
++ public static void Register();
++ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Resources.Tools.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Resources.Tools.md
new file mode 100644
index 00000000..fef50b29
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Resources.Tools.md
@@ -0,0 +1,18 @@
+# System.Resources.Tools
+
+``` diff
++namespace System.Resources.Tools {
++ [EditorBrowsableAttribute(1)]
++ public interface ITargetAwareCodeDomProvider {
++ bool SupportsProperty(Type type, string propertyName, bool isWritable);
++ }
++ public static class StronglyTypedResourceBuilder {
++ public static CodeCompileUnit Create(IDictionary resourceList, string baseName, string generatedCodeNamespace, CodeDomProvider codeProvider, bool internalClass, out string[] unmatchable);
++ public static CodeCompileUnit Create(IDictionary resourceList, string baseName, string generatedCodeNamespace, string resourcesNamespace, CodeDomProvider codeProvider, bool internalClass, out string[] unmatchable);
++ public static CodeCompileUnit Create(string resxFile, string baseName, string generatedCodeNamespace, CodeDomProvider codeProvider, bool internalClass, out string[] unmatchable);
++ public static CodeCompileUnit Create(string resxFile, string baseName, string generatedCodeNamespace, string resourcesNamespace, CodeDomProvider codeProvider, bool internalClass, out string[] unmatchable);
++ public static string VerifyResourceName(string key, CodeDomProvider provider);
++ }
++}
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Windows.Forms.Design.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Windows.Forms.Design.md
new file mode 100644
index 00000000..8b02ee78
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Windows.Forms.Design.md
@@ -0,0 +1,12 @@
+# System.Windows.Forms.Design
+
+``` diff
+ namespace System.Windows.Forms.Design {
+ public abstract class ComponentEditorPage : Panel {
+- public Icon Icon { get; set; }
++ [AllowNullAttribute]
++ public Icon Icon { get; set; }
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Windows.Forms.md b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Windows.Forms.md
new file mode 100644
index 00000000..520c13ad
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/Microsoft.WindowsDesktop.App/7.0-rc1_System.Windows.Forms.md
@@ -0,0 +1,263 @@
+# System.Windows.Forms
+
+``` diff
+ namespace System.Windows.Forms {
++ [RequiresPreviewFeaturesAttribute]
++ public abstract class BindableComponent : Component, IBindableComponent, IComponent, IDisposable {
++ protected BindableComponent();
++ [BrowsableAttribute(false)]
++ [DesignerSerializationVisibilityAttribute(0)]
++ [EditorBrowsableAttribute(2)]
++ public BindingContext? BindingContext { get; set; }
++ [DesignerSerializationVisibilityAttribute(2)]
++ [ParenthesizePropertyNameAttribute(true)]
++ [RefreshPropertiesAttribute(1)]
++ public ControlBindingsCollection DataBindings { get; }
++ [EditorBrowsableAttribute(2)]
++ public event EventHandler BindingContextChanged;
++ [EditorBrowsableAttribute(2)]
++ protected virtual void OnBindingContextChanged(EventArgs e);
++ }
+ [DesignerAttribute("System.Windows.Forms.Design.ButtonBaseDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
+ public abstract class ButtonBase : Control {
++ [BindableAttribute(true)]
++ [BrowsableAttribute(false)]
++ [DesignerSerializationVisibilityAttribute(0)]
++ [RequiresPreviewFeaturesAttribute]
++ public ICommand? Command { get; set; }
++ [BindableAttribute(true)]
++ [BrowsableAttribute(false)]
++ [DesignerSerializationVisibilityAttribute(0)]
++ public object? CommandParameter { [RequiresPreviewFeaturesAttribute] get; [RequiresPreviewFeaturesAttribute] set; }
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ public event EventHandler? CommandCanExecuteChanged;
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ public event EventHandler? CommandChanged;
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ public event EventHandler? CommandParameterChanged;
++ protected override void OnClick(EventArgs e);
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ protected virtual void OnCommandCanExecuteChanged(EventArgs e);
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ protected virtual void OnCommandChanged(EventArgs e);
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ protected virtual void OnCommandParameterChanged(EventArgs e);
++ [RequiresPreviewFeaturesAttribute]
++ protected virtual void OnRequestCommandExecute(EventArgs e);
+ }
+ public class ContainerControl : ScrollableControl, IContainerControl {
+- [BrowsableAttribute(false)]
+- [DesignerSerializationVisibilityAttribute(0)]
+- public Control ActiveControl { get; set; }
++ [BrowsableAttribute(false)]
++ [DesignerSerializationVisibilityAttribute(0)]
++ public Control? ActiveControl { get; set; }
+- [BrowsableAttribute(false)]
+- public override BindingContext BindingContext { get; set; }
++ [BrowsableAttribute(false)]
++ public override BindingContext? BindingContext { get; set; }
+- [BrowsableAttribute(false)]
+- [DesignerSerializationVisibilityAttribute(0)]
+- public Form ParentForm { get; }
++ [BrowsableAttribute(false)]
++ [DesignerSerializationVisibilityAttribute(0)]
++ public Form? ParentForm { get; }
+- [BrowsableAttribute(false)]
+- [EditorBrowsableAttribute(1)]
+- public event EventHandler AutoValidateChanged;
++ [BrowsableAttribute(false)]
++ [EditorBrowsableAttribute(1)]
++ public event EventHandler? AutoValidateChanged;
++ protected virtual void ScaleMinMaxSize(float xScaleFactor, float yScaleFactor, bool updateContainerSize = true);
+ }
+ [DefaultEventAttribute("Click")]
+ [DefaultPropertyAttribute("Text")]
+ [DesignerAttribute("System.Windows.Forms.Design.ControlDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
+ [DesignerSerializerAttribute("System.Windows.Forms.Design.ControlCodeDomSerializer, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.ComponentModel.Design.Serialization.CodeDomSerializer, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
+ [ToolboxItemFilterAttribute("System.Windows.Forms")]
+ public class Control : Component, IBindableComponent, IComponent, IDisposable, IDropTarget, Interop.Ole32.IOleControl, Interop.Ole32.IOleInPlaceActiveObject, Interop.Ole32.IOleInPlaceObject, Interop.Ole32.IOleObject, Interop.Ole32.IOleWindow, Interop.Ole32.IPersist, Interop.Ole32.IPersistStorage, Interop.Ole32.IPersistStreamInit, Interop.Ole32.IQuickActivate, Interop.Ole32.IViewObject, Interop.Ole32.IViewObject2, Interop.Oleaut32.IPersistPropertyBag, ISynchronizeInvoke, IWin32Window {
++ [BindableAttribute(true)]
++ [BrowsableAttribute(false)]
++ public virtual object DataContext { get; set; }
++ [BrowsableAttribute(true)]
++ [EditorBrowsableAttribute(2)]
++ public event EventHandler DataContextChanged;
+- [EditorBrowsableAttribute(2)]
+- public IAsyncResult BeginInvoke(Delegate method, params object[] args);
++ [EditorBrowsableAttribute(2)]
++ public IAsyncResult BeginInvoke(Delegate method, params object?[]? args);
+- public DragDropEffects DoDragDrop(object data, DragDropEffects allowedEffects, Bitmap dragImage, Point cursorOffset, bool useDefaultDragImage);
++ public DragDropEffects DoDragDrop(object data, DragDropEffects allowedEffects, Bitmap? dragImage, Point cursorOffset, bool useDefaultDragImage);
+- [EditorBrowsableAttribute(2)]
+- public object EndInvoke(IAsyncResult asyncResult);
++ [EditorBrowsableAttribute(2)]
++ public object? EndInvoke(IAsyncResult asyncResult);
+- public object Invoke(Delegate method, params object[] args);
++ public object Invoke(Delegate method, params object?[]? args);
++ [EditorBrowsableAttribute(2)]
++ protected virtual void OnDataContextChanged(EventArgs e);
++ [EditorBrowsableAttribute(2)]
++ protected virtual void OnParentDataContextChanged(EventArgs e);
+ }
+ [DefaultBindingPropertyAttribute("SelectedItem")]
+ [DefaultEventAttribute("SelectedItemChanged")]
+ [DefaultPropertyAttribute("Items")]
+ public class DomainUpDown : UpDownBase {
+- [BrowsableAttribute(false)]
+- [DesignerSerializationVisibilityAttribute(0)]
+- public object? SelectedItem { get; set; }
++ [BrowsableAttribute(false)]
++ [DesignerSerializationVisibilityAttribute(0)]
++ public object SelectedItem { get; set; }
+- [BrowsableAttribute(false)]
+- [EditorBrowsableAttribute(1)]
+- public new event EventHandler? PaddingChanged;
++ [BrowsableAttribute(false)]
++ [EditorBrowsableAttribute(1)]
++ public new event EventHandler PaddingChanged;
+- public event EventHandler? SelectedItemChanged;
++ public event EventHandler SelectedItemChanged;
+- public class DomainItemAccessibleObject : AccessibleObject {
++ [EditorBrowsableAttribute(1)]
++ [ObsoleteAttribute("DomainItemAccessibleObject is no longer used to provide accessible support for DomainUpDown items.", false, DiagnosticId="WFDEV003", UrlFormat="https://aka.ms/winforms-warnings/{0}")]
++ public class DomainItemAccessibleObject : AccessibleObject {
+- public override string? Name { get; set; }
++ public override string Name { get; set; }
+- public override string? Value { get; }
++ public override string Value { get; }
+ }
+- public class DomainUpDownAccessibleObject : Control.ControlAccessibleObject
++ [EditorBrowsableAttribute(1)]
++ [ObsoleteAttribute("DomainUpDownAccessibleObject is no longer used to provide accessible support for DomainUpDown controls.", false, DiagnosticId="WFDEV002", UrlFormat="https://aka.ms/winforms-warnings/{0}")]
++ public class DomainUpDownAccessibleObject : Control.ControlAccessibleObject
+ }
+ [DefaultEventAttribute("Load")]
+ [DesignTimeVisibleAttribute(false)]
+ [DesignerAttribute("System.Windows.Forms.Design.FormDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(IRootDesigner))]
+ [DesignerCategoryAttribute("Form")]
+ [InitializationEventAttribute("Load")]
+ [ToolboxItemAttribute(false)]
+ [ToolboxItemFilterAttribute("System.Windows.Forms.Control.TopLevel")]
+ public class Form : ContainerControl {
++ protected override void ScaleMinMaxSize(float xScaleFactor, float yScaleFactor, bool updateContainerSize = true);
+ }
+ [DefaultBindingPropertyAttribute("Value")]
+ [DefaultEventAttribute("ValueChanged")]
+ [DefaultPropertyAttribute("Value")]
+ public class NumericUpDown : UpDownBase, ISupportInitialize {
+- protected override AccessibleObject CreateAccessibilityInstance();
+ }
+ [DesignerAttribute("System.Windows.Forms.Design.ScrollableControlDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
+ public class ScrollableControl : Control, IComponent, IDisposable {
+- public void ScrollControlIntoView(Control activeControl);
++ public void ScrollControlIntoView(Control? activeControl);
+ }
+ [DesignerAttribute("System.Windows.Forms.Design.ToolStripContainerDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
+ public class ToolStripContainer : ContainerControl {
+- [BrowsableAttribute(false)]
+- [DesignerSerializationVisibilityAttribute(0)]
+- [EditorBrowsableAttribute(1)]
+- public override Cursor Cursor { get; set; }
++ [BrowsableAttribute(false)]
++ [DesignerSerializationVisibilityAttribute(0)]
++ [EditorBrowsableAttribute(1)]
++ [AllowNullAttribute]
++ public override Cursor Cursor { get; set; }
+ }
+- [DefaultEventAttribute("Click")]
+- [DefaultPropertyAttribute("Text")]
+- [DesignTimeVisibleAttribute(false)]
+- [DesignerAttribute("System.Windows.Forms.Design.ToolStripItemDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
+- [ToolboxItemAttribute(false)]
+- public abstract class ToolStripItem : Component, IComponent, IDisposable, IDropTarget {
++ [DefaultEventAttribute("Click")]
++ [DefaultPropertyAttribute("Text")]
++ [DesignTimeVisibleAttribute(false)]
++ [DesignerAttribute("System.Windows.Forms.Design.ToolStripItemDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
++ [ToolboxItemAttribute(false)]
++ public abstract class ToolStripItem : BindableComponent, IComponent, IDisposable, IDropTarget {
++ [BindableAttribute(true)]
++ [BrowsableAttribute(false)]
++ [DesignerSerializationVisibilityAttribute(0)]
++ [RequiresPreviewFeaturesAttribute]
++ public ICommand Command { get; set; }
++ [BindableAttribute(true)]
++ [BrowsableAttribute(false)]
++ [DesignerSerializationVisibilityAttribute(0)]
++ public object CommandParameter { [RequiresPreviewFeaturesAttribute] get; [RequiresPreviewFeaturesAttribute] set; }
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ public event EventHandler CommandCanExecuteChanged;
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ public event EventHandler CommandChanged;
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ public event EventHandler CommandParameterChanged;
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ protected virtual void OnCommandCanExecuteChanged(EventArgs e);
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ protected virtual void OnCommandChanged(EventArgs e);
++ [EditorBrowsableAttribute(2)]
++ [RequiresPreviewFeaturesAttribute]
++ protected virtual void OnCommandParameterChanged(EventArgs e);
++ [RequiresPreviewFeaturesAttribute]
++ protected virtual void OnRequestCommandExecute(EventArgs e);
+ }
+ [DesignerAttribute("System.Windows.Forms.Design.ToolStripPanelDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
+ [ToolboxBitmapAttribute(typeof(ToolStripPanel), "ToolStripPanel_standalone")]
+ public class ToolStripPanel : ContainerControl, IComponent, IDisposable {
+- [BrowsableAttribute(false)]
+- [DesignerSerializationVisibilityAttribute(0)]
+- [EditorBrowsableAttribute(1)]
+- public override string Text { get; set; }
++ [BrowsableAttribute(false)]
++ [DesignerSerializationVisibilityAttribute(0)]
++ [EditorBrowsableAttribute(1)]
++ [AllowNullAttribute]
++ public override string Text { get; set; }
+- [BrowsableAttribute(true)]
+- [EditorBrowsableAttribute(0)]
+- public new event EventHandler AutoSizeChanged;
++ [BrowsableAttribute(true)]
++ [EditorBrowsableAttribute(0)]
++ public new event EventHandler? AutoSizeChanged;
+- public event EventHandler RendererChanged;
++ public event EventHandler? RendererChanged;
+- [BrowsableAttribute(false)]
+- [EditorBrowsableAttribute(1)]
+- public new event EventHandler TabIndexChanged;
++ [BrowsableAttribute(false)]
++ [EditorBrowsableAttribute(1)]
++ public new event EventHandler? TabIndexChanged;
+- [BrowsableAttribute(false)]
+- [EditorBrowsableAttribute(1)]
+- public new event EventHandler TabStopChanged;
++ [BrowsableAttribute(false)]
++ [EditorBrowsableAttribute(1)]
++ public new event EventHandler? TabStopChanged;
+- [BrowsableAttribute(false)]
+- [EditorBrowsableAttribute(1)]
+- public new event EventHandler TextChanged;
++ [BrowsableAttribute(false)]
++ [EditorBrowsableAttribute(1)]
++ public new event EventHandler? TextChanged;
++ protected override AccessibleObject CreateAccessibilityInstance();
+- public ToolStripPanelRow PointToRow(Point clientLocation);
++ public ToolStripPanelRow? PointToRow(Point clientLocation);
+ }
+ [DesignerAttribute("System.Windows.Forms.Design.UpDownBaseDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
+ public abstract class UpDownBase : ContainerControl {
++ protected override AccessibleObject CreateAccessibilityInstance();
+ }
+ }
+```
+
diff --git a/release-notes/7.0/preview/api-diff/rc1/README.md b/release-notes/7.0/preview/api-diff/rc1/README.md
new file mode 100644
index 00000000..364d6676
--- /dev/null
+++ b/release-notes/7.0/preview/api-diff/rc1/README.md
@@ -0,0 +1,7 @@
+# .NET 7.0 RC 1 API Changes
+
+The following API changes were made in .NET 7.0 RC 1:
+
+- [Microsoft.NETCore.App](./Microsoft.NETCore.App/7.0-rc1.md)
+- [Microsoft.AspNetCore.App](./Microsoft.AspNetCore.App/7.0-rc1.md)
+- [Microsoft.WindowsDesktop.App](./Microsoft.WindowsDesktop.App/7.0-rc1.md)